git: eebf2f3f34a6 - main - editors/lapce: New port: Lightning-fast and Powerful Code Editor

From: Nuno Teixeira <eduardo_at_FreeBSD.org>
Date: Sat, 27 Aug 2022 14:25:47 UTC
The branch main has been updated by eduardo:

URL: https://cgit.FreeBSD.org/ports/commit/?id=eebf2f3f34a6f6cec4f3005a7c7362e87d7d5922

commit eebf2f3f34a6f6cec4f3005a7c7362e87d7d5922
Author:     Nuno Teixeira <eduardo@FreeBSD.org>
AuthorDate: 2022-08-27 14:21:28 +0000
Commit:     Nuno Teixeira <eduardo@FreeBSD.org>
CommitDate: 2022-08-27 14:24:58 +0000

    editors/lapce: New port: Lightning-fast and Powerful Code Editor
    
    Lapce is written in pure Rust with a UI in Druid. It is designed with
    Rope Science from the Xi-Editor which makes for lightning-fast
    computation, and leverages OpenGL for rendering.
    
     - Built-in LSP (Language Server Protocol) support to give you
       intelligent code features such as: completion, diagnostics and code
       actions
     - Modal editing support as first class citizen (Vim-like, and
       toggleable)
     - Built-in remote development support inspired by VSCode Remote
       Development.
     - Plugins can be written in programming languages that can compile to
       the WASI format (C, Rust, AssemblyScript)
     - Built-in terminal, so you can execute commands in your workspace,
       without leaving Lapce.
    
    WWW: https://lapce.dev/
    
    PR:             265892
---
 editors/Makefile                                   |    1 +
 editors/lapce/Makefile                             |   31 +
 editors/lapce/Makefile.crates                      |  579 ++++++++++
 editors/lapce/distinfo                             | 1161 ++++++++++++++++++++
 .../patch-cargo-crates_wasmtime-0.39.1_Cargo.toml  |   10 +
 editors/lapce/files/patch-druid                    |  200 ++++
 editors/lapce/files/patch-lapce-proxy_Cargo.toml   |   11 +
 editors/lapce/pkg-descr                            |   17 +
 8 files changed, 2010 insertions(+)

diff --git a/editors/Makefile b/editors/Makefile
index 1b3da9a033ce..2a49e4899e93 100644
--- a/editors/Makefile
+++ b/editors/Makefile
@@ -78,6 +78,7 @@
     SUBDIR += kibi
     SUBDIR += kile
     SUBDIR += komodo-edit
+    SUBDIR += lapce
     SUBDIR += lazarus
     SUBDIR += lazarus-devel
     SUBDIR += lazarus-qt5
diff --git a/editors/lapce/Makefile b/editors/lapce/Makefile
new file mode 100644
index 000000000000..6afb08fdd06f
--- /dev/null
+++ b/editors/lapce/Makefile
@@ -0,0 +1,31 @@
+PORTNAME=	lapce
+PORTVERSION=	g20220826 # remove openssl-src-* from CARGO-CRATES each update
+CATEGORIES=	editors
+
+MAINTAINER=	eduardo@FreeBSD.org
+COMMENT=	Lightning-fast and Powerful Code Editor
+
+LICENSE=	APACHE20
+
+NOT_FOR_ARCHS=	i386
+NOT_FOR_ARCHS_REASON_i386=	doesn't build: [zstd-sys 2.0.1+zstd.1.5.2] AR_i686_unknown_freebsd = None
+
+BUILD_DEPENDS=	p5-Cairo-GObject>0:devel/p5-Cairo-GObject \
+		p5-FindBin-libs>0:devel/p5-FindBin-libs
+LIB_DEPENDS=	libfontconfig.so:x11-fonts/fontconfig \
+		libgit2.so:devel/libgit2 \
+		libssh2.so:security/libssh2
+
+USES=		cargo gmake gnome localbase:ldflags perl5 pkgconfig ssl
+USE_GITHUB=	yes
+GH_TAGNAME=	5abf778
+USE_GNOME=	atk gdkpixbuf2 gtk30 pango
+
+PLIST_FILES=	bin/lapce \
+		bin/lapce-proxy
+
+post-install:
+	${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/lapce
+	${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/lapce-proxy
+
+.include <bsd.port.mk>
diff --git a/editors/lapce/Makefile.crates b/editors/lapce/Makefile.crates
new file mode 100644
index 000000000000..3e76949b39b9
--- /dev/null
+++ b/editors/lapce/Makefile.crates
@@ -0,0 +1,579 @@
+CARGO_CRATES=	Inflector-0.11.4 \
+		addr2line-0.17.0 \
+		adler-1.0.2 \
+		adler32-1.2.0 \
+		ahash-0.7.6 \
+		aho-corasick-0.7.18 \
+		alacritty_config_derive-0.1.0 \
+		alacritty_terminal-0.16.1 \
+		ambient-authority-0.0.1 \
+		android_system_properties-0.1.4 \
+		ansi_term-0.12.1 \
+		anyhow-1.0.61 \
+		arrayref-0.3.6 \
+		arrayvec-0.5.2 \
+		arrayvec-0.7.2 \
+		async-trait-0.1.57 \
+		atk-0.14.0 \
+		atk-sys-0.14.0 \
+		atty-0.2.14 \
+		autocfg-1.1.0 \
+		backtrace-0.3.66 \
+		base64-0.8.0 \
+		base64-0.13.0 \
+		bincode-1.3.3 \
+		bit_field-0.10.1 \
+		bitflags-1.3.2 \
+		bitmaps-2.1.0 \
+		block-0.1.6 \
+		block-buffer-0.9.0 \
+		bstr-0.2.17 \
+		bumpalo-3.10.0 \
+		bytecount-0.6.3 \
+		bytemuck-1.12.0 \
+		bytemuck_derive-1.2.0 \
+		byteorder-1.4.3 \
+		bytes-1.2.1 \
+		cairo-rs-0.14.9 \
+		cairo-sys-rs-0.14.9 \
+		cap-fs-ext-0.25.2 \
+		cap-primitives-0.25.2 \
+		cap-rand-0.25.2 \
+		cap-std-0.25.2 \
+		cap-time-ext-0.25.2 \
+		cc-1.0.73 \
+		cfg-expr-0.8.1 \
+		cfg-if-0.1.10 \
+		cfg-if-1.0.0 \
+		cgl-0.3.2 \
+		chrono-0.4.22 \
+		cmake-0.1.48 \
+		cocoa-0.24.0 \
+		cocoa-foundation-0.1.0 \
+		color_quant-1.1.0 \
+		combine-4.6.6 \
+		config-0.11.0 \
+		console_error_panic_hook-0.1.7 \
+		const-cstr-0.3.0 \
+		core-foundation-0.9.3 \
+		core-foundation-sys-0.8.3 \
+		core-graphics-0.22.3 \
+		core-graphics-types-0.1.1 \
+		core-text-19.2.0 \
+		cpp_demangle-0.3.5 \
+		cpufeatures-0.2.2 \
+		cranelift-bforest-0.86.1 \
+		cranelift-codegen-0.86.1 \
+		cranelift-codegen-meta-0.86.1 \
+		cranelift-codegen-shared-0.86.1 \
+		cranelift-entity-0.86.1 \
+		cranelift-frontend-0.86.1 \
+		cranelift-isle-0.86.1 \
+		cranelift-native-0.86.1 \
+		cranelift-wasm-0.86.1 \
+		crc32fast-1.3.2 \
+		crossbeam-channel-0.5.6 \
+		crossbeam-deque-0.8.2 \
+		crossbeam-epoch-0.9.10 \
+		crossbeam-utils-0.8.11 \
+		darling-0.13.4 \
+		darling_core-0.13.4 \
+		darling_macro-0.13.4 \
+		data-url-0.1.1 \
+		deflate-1.0.0 \
+		digest-0.9.0 \
+		directories-4.0.1 \
+		directories-next-2.0.0 \
+		dirs-3.0.2 \
+		dirs-4.0.0 \
+		dirs-next-2.0.0 \
+		dirs-sys-0.3.7 \
+		dirs-sys-next-0.1.2 \
+		dlib-0.5.0 \
+		dmg-0.1.1 \
+		dwrote-0.11.0 \
+		dyn-clone-1.0.9 \
+		either-1.7.0 \
+		encoding_rs-0.8.31 \
+		encoding_rs_io-0.1.7 \
+		env_logger-0.9.0 \
+		errno-0.2.8 \
+		errno-dragonfly-0.1.2 \
+		euclid-0.22.7 \
+		exr-1.4.2 \
+		fallible-iterator-0.2.0 \
+		fastrand-1.8.0 \
+		fern-0.6.1 \
+		field-offset-0.3.4 \
+		file-per-thread-logger-0.1.5 \
+		filetime-0.2.17 \
+		fixedbitset-0.2.0 \
+		flate2-1.0.24 \
+		float-cmp-0.5.3 \
+		float-cmp-0.9.0 \
+		float-ord-0.2.0 \
+		float_next_after-0.1.5 \
+		fluent-bundle-0.15.2 \
+		fluent-langneg-0.13.0 \
+		fluent-syntax-0.11.0 \
+		flume-0.10.14 \
+		fnv-1.0.7 \
+		fontconfig-parser-0.5.0 \
+		fontdb-0.5.4 \
+		fontdb-0.9.1 \
+		foreign-types-0.3.2 \
+		foreign-types-shared-0.1.1 \
+		form_urlencoded-1.0.1 \
+		freetype-0.7.0 \
+		freetype-sys-0.13.1 \
+		fs-set-times-0.17.1 \
+		fs2-0.4.3 \
+		fs_extra-1.2.0 \
+		fsevent-sys-4.1.0 \
+		fuchsia-zircon-0.3.3 \
+		fuchsia-zircon-sys-0.3.3 \
+		futures-0.3.23 \
+		futures-channel-0.3.23 \
+		futures-core-0.3.23 \
+		futures-executor-0.3.23 \
+		futures-io-0.3.23 \
+		futures-macro-0.3.23 \
+		futures-sink-0.3.23 \
+		futures-task-0.3.23 \
+		futures-util-0.3.23 \
+		fuzzy-matcher-0.3.7 \
+		fxhash-0.2.1 \
+		gdk-0.14.3 \
+		gdk-pixbuf-0.14.0 \
+		gdk-pixbuf-sys-0.14.0 \
+		gdk-sys-0.14.0 \
+		generic-array-0.14.6 \
+		getopts-0.2.21 \
+		getrandom-0.2.7 \
+		gif-0.11.4 \
+		gimli-0.26.2 \
+		gio-0.14.8 \
+		gio-sys-0.14.0 \
+		git2-0.14.4 \
+		gl_generator-0.14.0 \
+		gl_loader-0.1.2 \
+		glam-0.10.2 \
+		glib-0.14.8 \
+		glib-macros-0.14.1 \
+		glib-sys-0.14.0 \
+		glob-0.3.0 \
+		globset-0.4.9 \
+		glow-0.11.2 \
+		glutin_wgl_sys-0.1.5 \
+		gobject-sys-0.14.0 \
+		grep-matcher-0.1.5 \
+		grep-regex-0.1.10 \
+		grep-searcher-0.1.10 \
+		gtk-0.14.3 \
+		gtk-sys-0.14.0 \
+		gtk3-macros-0.14.0 \
+		h2-0.3.13 \
+		half-1.8.2 \
+		hashbrown-0.11.2 \
+		hashbrown-0.12.3 \
+		heck-0.3.3 \
+		heck-0.4.0 \
+		hermit-abi-0.1.19 \
+		hermit-abi-0.2.5 \
+		http-0.2.8 \
+		http-body-0.4.5 \
+		httparse-1.7.1 \
+		httpdate-1.0.2 \
+		humantime-2.1.0 \
+		hyper-0.14.20 \
+		hyper-tls-0.5.0 \
+		iana-time-zone-0.1.45 \
+		ident_case-1.0.1 \
+		idna-0.2.3 \
+		ignore-0.4.18 \
+		im-15.1.0 \
+		image-0.24.3 \
+		include_dir-0.6.2 \
+		include_dir_impl-0.6.2 \
+		indexmap-1.9.1 \
+		inflate-0.4.5 \
+		inotify-0.9.6 \
+		inotify-sys-0.1.5 \
+		instant-0.1.12 \
+		intl-memoizer-0.5.1 \
+		intl_pluralrules-7.0.1 \
+		io-extras-0.15.0 \
+		io-lifetimes-0.7.3 \
+		iovec-0.1.4 \
+		ipnet-2.5.0 \
+		is-terminal-0.3.0 \
+		itertools-0.10.3 \
+		itoa-1.0.3 \
+		ittapi-rs-0.2.0 \
+		jobserver-0.1.24 \
+		jpeg-decoder-0.2.6 \
+		js-sys-0.3.59 \
+		jsonrpc-lite-0.5.0 \
+		kernel32-sys-0.2.2 \
+		keyboard-types-0.6.2 \
+		khronos_api-3.1.0 \
+		kqueue-1.0.6 \
+		kqueue-sys-1.0.3 \
+		kurbo-0.8.3 \
+		lazy_static-1.4.0 \
+		lazycell-1.3.0 \
+		leb128-0.2.5 \
+		lebe-0.5.2 \
+		lexical-core-0.7.6 \
+		libc-0.2.132 \
+		libgit2-sys-0.13.4+1.4.2 \
+		libloading-0.7.3 \
+		libssh2-sys-0.2.23 \
+		libz-sys-1.1.8 \
+		linked-hash-map-0.5.6 \
+		linux-raw-sys-0.0.46 \
+		locale_config-0.3.0 \
+		lock_api-0.4.7 \
+		log-0.3.9 \
+		log-0.4.17 \
+		lsp-types-0.93.0 \
+		lyon-0.17.10 \
+		lyon_algorithms-0.17.7 \
+		lyon_geom-0.17.7 \
+		lyon_path-0.17.7 \
+		lyon_tessellation-0.17.10 \
+		mach-0.3.2 \
+		malloc_buf-0.0.6 \
+		matches-0.1.9 \
+		maybe-owned-0.3.4 \
+		memchr-2.5.0 \
+		memfd-0.6.1 \
+		memmap2-0.2.3 \
+		memmap2-0.5.7 \
+		memoffset-0.6.5 \
+		mime-0.3.16 \
+		miniz_oxide-0.5.3 \
+		mio-0.6.23 \
+		mio-0.8.4 \
+		mio-anonymous-pipes-0.2.0 \
+		mio-extras-2.0.6 \
+		mio-uds-0.6.8 \
+		miow-0.2.2 \
+		miow-0.3.7 \
+		more-asserts-0.2.2 \
+		nanorand-0.7.0 \
+		native-tls-0.2.10 \
+		net2-0.2.37 \
+		nix-0.22.3 \
+		nom-5.1.2 \
+		notify-5.0.0-pre.16 \
+		num-integer-0.1.45 \
+		num-rational-0.4.1 \
+		num-traits-0.1.43 \
+		num-traits-0.2.15 \
+		num_cpus-1.13.1 \
+		num_threads-0.1.6 \
+		objc-0.2.7 \
+		objc-foundation-0.1.1 \
+		objc_id-0.1.1 \
+		object-0.28.4 \
+		object-0.29.0 \
+		once_cell-1.13.1 \
+		opaque-debug-0.3.0 \
+		open-3.0.2 \
+		openssl-0.10.41 \
+		openssl-macros-0.1.0 \
+		openssl-probe-0.1.5 \
+		openssl-sys-0.9.75 \
+		pango-0.14.8 \
+		pango-sys-0.14.0 \
+		parking_lot-0.11.2 \
+		parking_lot-0.12.1 \
+		parking_lot_core-0.8.5 \
+		parking_lot_core-0.9.3 \
+		paste-1.0.8 \
+		pathdiff-0.2.1 \
+		pathfinder_geometry-0.5.1 \
+		pathfinder_simd-0.5.1 \
+		percent-encoding-2.1.0 \
+		pest-2.2.1 \
+		petgraph-0.5.1 \
+		pico-args-0.4.2 \
+		piet-0.4.0 \
+		pin-project-1.0.12 \
+		pin-project-internal-1.0.12 \
+		pin-project-lite-0.2.9 \
+		pin-utils-0.1.0 \
+		pkg-config-0.3.25 \
+		plist-0.2.4 \
+		png-0.17.5 \
+		ppv-lite86-0.2.16 \
+		proc-macro-crate-1.2.1 \
+		proc-macro-error-1.0.4 \
+		proc-macro-error-attr-1.0.4 \
+		proc-macro-hack-0.5.19 \
+		proc-macro2-1.0.43 \
+		process_path-0.1.4 \
+		psm-0.1.20 \
+		pulldown-cmark-0.9.2 \
+		quote-1.0.21 \
+		rand-0.8.5 \
+		rand_chacha-0.3.1 \
+		rand_core-0.6.3 \
+		rand_xoshiro-0.6.0 \
+		rayon-1.5.3 \
+		rayon-core-1.9.3 \
+		rctree-0.3.3 \
+		rctree-0.4.0 \
+		redox_syscall-0.2.16 \
+		redox_users-0.4.3 \
+		regalloc2-0.3.2 \
+		regex-1.6.0 \
+		regex-automata-0.1.10 \
+		regex-syntax-0.6.27 \
+		region-2.2.0 \
+		remove_dir_all-0.5.3 \
+		reqwest-0.11.11 \
+		resvg-0.22.0 \
+		rgb-0.8.33 \
+		roxmltree-0.14.1 \
+		rust-ini-0.13.0 \
+		rustc-demangle-0.1.21 \
+		rustc-hash-1.1.0 \
+		rustc_version-0.3.3 \
+		rustix-0.35.8 \
+		rustversion-1.0.9 \
+		rustybuzz-0.3.0 \
+		rustybuzz-0.5.1 \
+		ryu-1.0.11 \
+		safe_arch-0.5.2 \
+		safemem-0.2.0 \
+		same-file-1.0.6 \
+		schannel-0.1.20 \
+		scoped_threadpool-0.1.9 \
+		scopeguard-1.1.0 \
+		security-framework-2.6.1 \
+		security-framework-sys-2.6.1 \
+		self_cell-0.10.2 \
+		semver-0.11.0 \
+		semver-parser-0.10.2 \
+		serde-0.8.23 \
+		serde-1.0.143 \
+		serde-hjson-0.9.1 \
+		serde_derive-1.0.143 \
+		serde_json-1.0.83 \
+		serde_repr-0.1.9 \
+		serde_urlencoded-0.7.1 \
+		serde_yaml-0.8.26 \
+		sha2-0.9.9 \
+		sharded-slab-0.1.4 \
+		shellexpand-2.1.2 \
+		sid-0.6.1 \
+		signal-hook-0.3.14 \
+		signal-hook-mio-0.2.3 \
+		signal-hook-registry-1.4.0 \
+		simplecss-0.2.1 \
+		siphasher-0.2.3 \
+		siphasher-0.3.10 \
+		sized-chunks-0.6.5 \
+		slab-0.4.7 \
+		sled-0.34.7 \
+		slice-group-by-0.3.0 \
+		slotmap-1.0.6 \
+		smallvec-1.9.0 \
+		socket2-0.4.4 \
+		spin-0.9.4 \
+		spsc-buffer-0.1.1 \
+		stable_deref_trait-1.2.0 \
+		static_assertions-1.1.0 \
+		strsim-0.10.0 \
+		strum-0.21.0 \
+		strum-0.24.1 \
+		strum_macros-0.21.1 \
+		strum_macros-0.24.3 \
+		svgfilters-0.4.0 \
+		svgtypes-0.5.0 \
+		svgtypes-0.8.1 \
+		syn-1.0.99 \
+		system-deps-3.2.0 \
+		system-interface-0.21.0 \
+		tar-0.4.38 \
+		target-lexicon-0.12.4 \
+		tempfile-3.3.0 \
+		termcolor-1.1.3 \
+		thiserror-1.0.32 \
+		thiserror-impl-1.0.32 \
+		thread-id-4.0.0 \
+		thread_local-1.1.4 \
+		threadpool-1.8.1 \
+		tiff-0.7.3 \
+		time-0.1.44 \
+		time-0.3.13 \
+		tiny-skia-0.6.6 \
+		tinystr-0.3.4 \
+		tinyvec-1.6.0 \
+		tinyvec_macros-0.1.0 \
+		tokio-1.20.1 \
+		tokio-macros-1.8.0 \
+		tokio-native-tls-0.3.0 \
+		tokio-socks-0.5.1 \
+		tokio-util-0.7.3 \
+		toml-0.5.9 \
+		toml_edit-0.14.4 \
+		tower-service-0.3.2 \
+		tracing-0.1.36 \
+		tracing-attributes-0.1.22 \
+		tracing-core-0.1.29 \
+		tracing-subscriber-0.3.15 \
+		tracing-wasm-0.2.1 \
+		trash-2.1.5 \
+		tree-sitter-0.20.8 \
+		tree-sitter-c-0.20.2 \
+		tree-sitter-cpp-0.20.0 \
+		tree-sitter-elm-5.6.0 \
+		tree-sitter-go-0.19.1 \
+		tree-sitter-hare-0.20.7 \
+		tree-sitter-html-0.19.0 \
+		tree-sitter-javascript-0.20.0 \
+		tree-sitter-json-0.19.0 \
+		tree-sitter-python-0.20.2 \
+		tree-sitter-rust-0.20.1 \
+		tree-sitter-swift-0.3.1 \
+		tree-sitter-toml-0.20.0 \
+		tree-sitter-typescript-0.20.1 \
+		try-lock-0.2.3 \
+		ttf-parser-0.9.0 \
+		ttf-parser-0.12.3 \
+		ttf-parser-0.15.2 \
+		type-map-0.4.0 \
+		typenum-1.15.0 \
+		ucd-trie-0.1.4 \
+		unic-bidi-0.9.0 \
+		unic-char-property-0.9.0 \
+		unic-char-range-0.9.0 \
+		unic-common-0.9.0 \
+		unic-langid-0.9.0 \
+		unic-langid-impl-0.9.0 \
+		unic-ucd-bidi-0.9.0 \
+		unic-ucd-version-0.9.0 \
+		unicase-2.6.0 \
+		unicode-bidi-0.3.8 \
+		unicode-bidi-mirroring-0.1.0 \
+		unicode-ccc-0.1.2 \
+		unicode-general-category-0.2.0 \
+		unicode-general-category-0.4.0 \
+		unicode-ident-1.0.3 \
+		unicode-normalization-0.1.21 \
+		unicode-script-0.5.4 \
+		unicode-segmentation-1.9.0 \
+		unicode-vo-0.1.0 \
+		unicode-width-0.1.9 \
+		url-2.2.2 \
+		usvg-0.14.1 \
+		usvg-0.22.0 \
+		utf8parse-0.2.0 \
+		uuid-0.8.2 \
+		vcpkg-0.2.15 \
+		version-compare-0.0.11 \
+		version_check-0.9.4 \
+		vte-0.10.1 \
+		vte_generate_state_changes-0.1.1 \
+		walkdir-2.3.2 \
+		want-0.3.0 \
+		wasi-0.10.0+wasi-snapshot-preview1 \
+		wasi-0.11.0+wasi-snapshot-preview1 \
+		wasi-cap-std-sync-0.39.1 \
+		wasi-common-0.39.1 \
+		wasm-bindgen-0.2.82 \
+		wasm-bindgen-backend-0.2.82 \
+		wasm-bindgen-futures-0.4.32 \
+		wasm-bindgen-macro-0.2.82 \
+		wasm-bindgen-macro-support-0.2.82 \
+		wasm-bindgen-shared-0.2.82 \
+		wasm-encoder-0.15.0 \
+		wasmparser-0.86.0 \
+		wasmtime-0.39.1 \
+		wasmtime-cache-0.39.1 \
+		wasmtime-cranelift-0.39.1 \
+		wasmtime-environ-0.39.1 \
+		wasmtime-fiber-0.39.1 \
+		wasmtime-jit-0.39.1 \
+		wasmtime-jit-debug-0.39.1 \
+		wasmtime-runtime-0.39.1 \
+		wasmtime-types-0.39.1 \
+		wasmtime-wasi-0.39.1 \
+		wast-35.0.2 \
+		wast-45.0.0 \
+		wat-1.0.47 \
+		web-sys-0.3.59 \
+		weezl-0.1.7 \
+		which-4.2.5 \
+		wiggle-0.39.1 \
+		wiggle-generate-0.39.1 \
+		wiggle-macro-0.39.1 \
+		winapi-0.2.8 \
+		winapi-0.3.9 \
+		winapi-build-0.1.1 \
+		winapi-i686-pc-windows-gnu-0.4.0 \
+		winapi-util-0.1.5 \
+		winapi-x86_64-pc-windows-gnu-0.4.0 \
+		windows-0.37.0 \
+		windows-sys-0.36.1 \
+		windows_aarch64_msvc-0.36.1 \
+		windows_aarch64_msvc-0.37.0 \
+		windows_i686_gnu-0.36.1 \
+		windows_i686_gnu-0.37.0 \
+		windows_i686_msvc-0.36.1 \
+		windows_i686_msvc-0.37.0 \
+		windows_x86_64_gnu-0.36.1 \
+		windows_x86_64_gnu-0.37.0 \
+		windows_x86_64_msvc-0.36.1 \
+		windows_x86_64_msvc-0.37.0 \
+		winreg-0.10.1 \
+		winres-0.1.12 \
+		winx-0.33.0 \
+		wio-0.2.2 \
+		witx-0.9.1 \
+		ws2_32-sys-0.2.1 \
+		xattr-0.2.3 \
+		xi-unicode-0.3.0 \
+		xml-rs-0.7.0 \
+		xml-rs-0.8.4 \
+		xmlparser-0.13.3 \
+		xmlwriter-0.1.0 \
+		yaml-rust-0.4.5 \
+		yazi-0.1.4 \
+		yeslogic-fontconfig-sys-3.2.0 \
+		zeno-0.2.2 \
+		zip-0.6.2 \
+		zstd-0.11.2+zstd.1.5.2 \
+		zstd-safe-5.0.2+zstd.1.5.2 \
+		zstd-sys-2.0.1+zstd.1.5.2 \
+		tree-sitter-wgsl@git+https://github.com/szebniok/tree-sitter-wgsl?branch=master\#272e89ef2aeac74178edb9db4a83c1ffef80a463 \
+		psp-types@git+https://github.com/lapce/psp-types\#0a18e1d285b6e1791e440728c633ef84ed99d1e0 \
+		druid,druid-derive,druid-shell@git+https://github.com/lapce/druid?branch=shell_opengl\#85d503a79df7581d1a144f97ee1cc369788b55b8 \
+		tree-sitter-glimmer@git+https://github.com/VixieTSQ/tree-sitter-glimmer\#7281caca2ba114e1960c5d944a37860ef0841426 \
+		tree-sitter-ruby@git+https://github.com/Liberatys/tree-sitter-ruby.git?branch=chore/allow-range-of-tree-sitter\#26086eeb072266abf51273af631a2cb62d0fd1e8 \
+		wasi-experimental-http-wasmtime@git+https://github.com/lapce/wasi-experimental-http\#3685f0893ef19c1cca5b16a11ba01ff7ade14a5f \
+		tree-sitter-haxe@git+https://github.com/VixieTSQ/tree-sitter-haxe\#a3e23bc0f84a53371eb5d86229782ec6c21d3729 \
+		tree-sitter-css@git+https://github.com/syntacti/tree-sitter-css?branch=master\#b5018f23290618d70c7483cd60a06a05d54832e1 \
+		tree-sitter-bash@git+https://github.com/syntacti/tree-sitter-bash?branch=master\#ba3adca745943b71b0c84bb4e4977788cc6a867b \
+		tree-sitter-ql@git+https://github.com/tree-sitter/tree-sitter-ql\#4b8078c7fdcce9d4ca06ce3cfec3a61e8c3f4555 \
+		parley@git+https://github.com/lapce/parley\#6baaa02bbe3ab717822656ad98a95f8121febd53 \
+		tree-sitter-julia@git+https://github.com/varlad/tree-sitter-julia?branch=master\#05b4de163932f52bc1e57c5ff4deff291b6e8805 \
+		swash@git+https://github.com/lapce/swash\#1d9b8c700a415f0f4216dd30026b3a2149db8e1e \
+		tree-sitter-elixir@git+https://github.com/elixir-lang/tree-sitter-elixir.git\#05e3631c6a0701c1fa518b0fee7be95a2ceef5e2 \
+		tree-sitter-php@git+https://github.com/tree-sitter/tree-sitter-php.git\#670d1eb6822d8c7ade1c71232e0bef42757b9da7 \
+		fount@git+https://github.com/lapce/fount\#3bfdc689c0cfbeb498358c79c7be2cb3beb44efe \
+		tree-sitter-ocaml@git+https://github.com/tree-sitter/tree-sitter-ocaml\#cc26b1ef111100f26a137bcbcd39fd4e35be9a59 \
+		tree-sitter-hcl@git+https://github.com/VixieTSQ/tree-sitter-hcl\#f4aa4553344e03e149ec459549a7f686d6846626 \
+		tree-sitter-zig@git+https://github.com/maxxnino/tree-sitter-zig?branch=main\#8d3224c3bd0890fe08358886ebf54fca2ed448a6 \
+		tree-sitter-yaml@git+https://github.com/panekj/tree-sitter-yaml?branch=master\#faed130c65531addfa3edf855e1d417b96c7f163 \
+		tree-sitter-haskell@git+https://github.com/tree-sitter/tree-sitter-haskell\#972156b37ee6f4a8b51a6f67f76aecc6fa13714c \
+		piet-wgpu@git+https://github.com/lapce/piet-wgpu?branch=shell_opengl\#f863b3e49175d1811e6008cea2ca1bd282fc5bed \
+		tree-sitter-scss@git+https://github.com/VixieTSQ/tree-sitter-scss?branch=patch-1\#3aac3391ede5098edbf4cc8a9f6d0cfdfe28e5dc \
+		font-kit@git+https://github.com/lapce/font-kit\#23e28b06b40f31fc53b82645b09ce6421768be23 \
+		xi-rope@git+https://github.com/lapce/xi-editor\#06816cc92e97996c12ec048aa9190b4efc00d1a6 \
+		tree-sitter-md@git+https://github.com/dzhou121/tree-sitter-markdown.git\#134c7f870ad17b3c3e40cd90b8bbd08329ac4bbd \
+		structdesc@git+https://github.com/lapce/structdesc\#a6a2b8ab65d43475238f889736c4aa5dfff4500a \
+		tree-sitter-java@git+https://github.com/tree-sitter/tree-sitter-java.git\#72a9af08f4e501fad1252cc62f71469f247229f1
diff --git a/editors/lapce/distinfo b/editors/lapce/distinfo
new file mode 100644
index 000000000000..6ceb6c1b4365
--- /dev/null
+++ b/editors/lapce/distinfo
@@ -0,0 +1,1161 @@
+TIMESTAMP = 1661590395
+SHA256 (rust/crates/Inflector-0.11.4.crate) = fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3
+SIZE (rust/crates/Inflector-0.11.4.crate) = 17438
+SHA256 (rust/crates/addr2line-0.17.0.crate) = b9ecd88a8c8378ca913a680cd98f0f13ac67383d35993f86c90a70e3f137816b
+SIZE (rust/crates/addr2line-0.17.0.crate) = 32260
+SHA256 (rust/crates/adler-1.0.2.crate) = f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe
+SIZE (rust/crates/adler-1.0.2.crate) = 12778
+SHA256 (rust/crates/adler32-1.2.0.crate) = aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234
+SIZE (rust/crates/adler32-1.2.0.crate) = 6411
+SHA256 (rust/crates/ahash-0.7.6.crate) = fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47
+SIZE (rust/crates/ahash-0.7.6.crate) = 38030
+SHA256 (rust/crates/aho-corasick-0.7.18.crate) = 1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f
+SIZE (rust/crates/aho-corasick-0.7.18.crate) = 112923
+SHA256 (rust/crates/alacritty_config_derive-0.1.0.crate) = 77044c45bdb871e501b5789ad16293ecb619e5733b60f4bb01d1cb31c463c336
+SIZE (rust/crates/alacritty_config_derive-0.1.0.crate) = 9868
+SHA256 (rust/crates/alacritty_terminal-0.16.1.crate) = 02fb5d4af84e39f9754d039ff6de2233c8996dbae0af74910156e559e5766e2f
+SIZE (rust/crates/alacritty_terminal-0.16.1.crate) = 379746
+SHA256 (rust/crates/ambient-authority-0.0.1.crate) = ec8ad6edb4840b78c5c3d88de606b22252d552b55f3a4699fbb10fc070ec3049
+SIZE (rust/crates/ambient-authority-0.0.1.crate) = 14553
+SHA256 (rust/crates/android_system_properties-0.1.4.crate) = d7ed72e1635e121ca3e79420540282af22da58be50de153d36f81ddc6b83aa9e
+SIZE (rust/crates/android_system_properties-0.1.4.crate) = 4637
+SHA256 (rust/crates/ansi_term-0.12.1.crate) = d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2
+SIZE (rust/crates/ansi_term-0.12.1.crate) = 24838
+SHA256 (rust/crates/anyhow-1.0.61.crate) = 508b352bb5c066aac251f6daf6b36eccd03e8a88e8081cd44959ea277a3af9a8
+SIZE (rust/crates/anyhow-1.0.61.crate) = 43202
+SHA256 (rust/crates/arrayref-0.3.6.crate) = a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544
+SIZE (rust/crates/arrayref-0.3.6.crate) = 10035
+SHA256 (rust/crates/arrayvec-0.5.2.crate) = 23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b
+SIZE (rust/crates/arrayvec-0.5.2.crate) = 27838
+SHA256 (rust/crates/arrayvec-0.7.2.crate) = 8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6
+SIZE (rust/crates/arrayvec-0.7.2.crate) = 29341
+SHA256 (rust/crates/async-trait-0.1.57.crate) = 76464446b8bc32758d7e88ee1a804d9914cd9b1cb264c029899680b0be29826f
+SIZE (rust/crates/async-trait-0.1.57.crate) = 26793
+SHA256 (rust/crates/atk-0.14.0.crate) = a83b21d2aa75e464db56225e1bda2dd5993311ba1095acaa8fa03d1ae67026ba
+SIZE (rust/crates/atk-0.14.0.crate) = 35031
+SHA256 (rust/crates/atk-sys-0.14.0.crate) = badcf670157c84bb8b1cf6b5f70b650fed78da2033c9eed84c4e49b11cbe83ea
+SIZE (rust/crates/atk-sys-0.14.0.crate) = 21815
+SHA256 (rust/crates/atty-0.2.14.crate) = d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8
+SIZE (rust/crates/atty-0.2.14.crate) = 5470
+SHA256 (rust/crates/autocfg-1.1.0.crate) = d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa
+SIZE (rust/crates/autocfg-1.1.0.crate) = 13272
+SHA256 (rust/crates/backtrace-0.3.66.crate) = cab84319d616cfb654d03394f38ab7e6f0919e181b1b57e1fd15e7fb4077d9a7
+SIZE (rust/crates/backtrace-0.3.66.crate) = 74397
+SHA256 (rust/crates/base64-0.8.0.crate) = 7c4a342b450b268e1be8036311e2c613d7f8a7ed31214dff1cc3b60852a3168d
+SIZE (rust/crates/base64-0.8.0.crate) = 33091
+SHA256 (rust/crates/base64-0.13.0.crate) = 904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd
+SIZE (rust/crates/base64-0.13.0.crate) = 62070
+SHA256 (rust/crates/bincode-1.3.3.crate) = b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad
+SIZE (rust/crates/bincode-1.3.3.crate) = 28958
+SHA256 (rust/crates/bit_field-0.10.1.crate) = dcb6dd1c2376d2e096796e234a70e17e94cc2d5d54ff8ce42b28cef1d0d359a4
+SIZE (rust/crates/bit_field-0.10.1.crate) = 10576
+SHA256 (rust/crates/bitflags-1.3.2.crate) = bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a
+SIZE (rust/crates/bitflags-1.3.2.crate) = 23021
+SHA256 (rust/crates/bitmaps-2.1.0.crate) = 031043d04099746d8db04daf1fa424b2bc8bd69d92b25962dcde24da39ab64a2
+SIZE (rust/crates/bitmaps-2.1.0.crate) = 16717
+SHA256 (rust/crates/block-0.1.6.crate) = 0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a
+SIZE (rust/crates/block-0.1.6.crate) = 4077
+SHA256 (rust/crates/block-buffer-0.9.0.crate) = 4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4
+SIZE (rust/crates/block-buffer-0.9.0.crate) = 7108
+SHA256 (rust/crates/bstr-0.2.17.crate) = ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223
+SIZE (rust/crates/bstr-0.2.17.crate) = 330350
+SHA256 (rust/crates/bumpalo-3.10.0.crate) = 37ccbd214614c6783386c1af30caf03192f17891059cecc394b4fb119e363de3
+SIZE (rust/crates/bumpalo-3.10.0.crate) = 78915
+SHA256 (rust/crates/bytecount-0.6.3.crate) = 2c676a478f63e9fa2dd5368a42f28bba0d6c560b775f38583c8bbaa7fcd67c9c
+SIZE (rust/crates/bytecount-0.6.3.crate) = 12416
+SHA256 (rust/crates/bytemuck-1.12.0.crate) = 44f8cb64b4147a528e1e9e77583739e683541973295b35f3bd7e78d42c5971fd
+SIZE (rust/crates/bytemuck-1.12.0.crate) = 38248
+SHA256 (rust/crates/bytemuck_derive-1.2.0.crate) = 339cdf1eb047d1c96cb8be64f4bc28975821222ec1736edfa06e140cf18d0064
+SIZE (rust/crates/bytemuck_derive-1.2.0.crate) = 13511
+SHA256 (rust/crates/byteorder-1.4.3.crate) = 14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610
+SIZE (rust/crates/byteorder-1.4.3.crate) = 22512
+SHA256 (rust/crates/bytes-1.2.1.crate) = ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db
+SIZE (rust/crates/bytes-1.2.1.crate) = 54857
+SHA256 (rust/crates/cairo-rs-0.14.9.crate) = 33b5725979db0c586d98abad2193cdb612dd40ef95cd26bd99851bf93b3cb482
+SIZE (rust/crates/cairo-rs-0.14.9.crate) = 48398
+SHA256 (rust/crates/cairo-sys-rs-0.14.9.crate) = b448b876970834fda82ba3aeaccadbd760206b75388fc5c1b02f1e343b697570
+SIZE (rust/crates/cairo-sys-rs-0.14.9.crate) = 11148
+SHA256 (rust/crates/cap-fs-ext-0.25.2.crate) = 04e142bbbe9d5d6a2dd0387f887a000b41f4c82fb1226316dfb4cc8dbc3b1a29
+SIZE (rust/crates/cap-fs-ext-0.25.2.crate) = 14371
+SHA256 (rust/crates/cap-primitives-0.25.2.crate) = 7f22f4975282dd4f2330ee004f001c4e22f420da9fb474ea600e9af330f1e548
+SIZE (rust/crates/cap-primitives-0.25.2.crate) = 74763
+SHA256 (rust/crates/cap-rand-0.25.2.crate) = ef643f8defef7061c395bb3721b6a80d39c1baaa8ee2e42edf2917fa05584e7f
+SIZE (rust/crates/cap-rand-0.25.2.crate) = 8349
+SHA256 (rust/crates/cap-std-0.25.2.crate) = 95624bb0abba6b6ff6fad2e02a7d3945d093d064ac5a3477a308c29fbe3bfd49
+SIZE (rust/crates/cap-std-0.25.2.crate) = 31084
+SHA256 (rust/crates/cap-time-ext-0.25.2.crate) = 46a2d284862edf6e431e9ad4e109c02855157904cebaceae6f042b124a1a21e2
+SIZE (rust/crates/cap-time-ext-0.25.2.crate) = 8141
+SHA256 (rust/crates/cc-1.0.73.crate) = 2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11
+SIZE (rust/crates/cc-1.0.73.crate) = 57880
+SHA256 (rust/crates/cfg-expr-0.8.1.crate) = b412e83326147c2bb881f8b40edfbf9905b9b8abaebd0e47ca190ba62fda8f0e
+SIZE (rust/crates/cfg-expr-0.8.1.crate) = 34539
+SHA256 (rust/crates/cfg-if-0.1.10.crate) = 4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822
+SIZE (rust/crates/cfg-if-0.1.10.crate) = 7933
+SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd
+SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934
+SHA256 (rust/crates/cgl-0.3.2.crate) = 0ced0551234e87afee12411d535648dd89d2e7f34c78b753395567aff3d447ff
+SIZE (rust/crates/cgl-0.3.2.crate) = 7557
+SHA256 (rust/crates/chrono-0.4.22.crate) = bfd4d1b31faaa3a89d7934dbded3111da0d2ef28e3ebccdb4f0179f5929d1ef1
+SIZE (rust/crates/chrono-0.4.22.crate) = 185570
+SHA256 (rust/crates/cmake-0.1.48.crate) = e8ad8cef104ac57b68b89df3208164d228503abbdce70f6880ffa3d970e7443a
+SIZE (rust/crates/cmake-0.1.48.crate) = 15142
+SHA256 (rust/crates/cocoa-0.24.0.crate) = 6f63902e9223530efb4e26ccd0cf55ec30d592d3b42e21a28defc42a9586e832
+SIZE (rust/crates/cocoa-0.24.0.crate) = 39235
+SHA256 (rust/crates/cocoa-foundation-0.1.0.crate) = 7ade49b65d560ca58c403a479bb396592b155c0185eada742ee323d1d68d6318
+SIZE (rust/crates/cocoa-foundation-0.1.0.crate) = 10645
+SHA256 (rust/crates/color_quant-1.1.0.crate) = 3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b
+SIZE (rust/crates/color_quant-1.1.0.crate) = 6649
+SHA256 (rust/crates/combine-4.6.6.crate) = 35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4
+SIZE (rust/crates/combine-4.6.6.crate) = 132428
+SHA256 (rust/crates/config-0.11.0.crate) = 1b1b9d958c2b1368a663f05538fc1b5975adce1e19f435acceae987aceeeb369
+SIZE (rust/crates/config-0.11.0.crate) = 32062
+SHA256 (rust/crates/console_error_panic_hook-0.1.7.crate) = a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc
+SIZE (rust/crates/console_error_panic_hook-0.1.7.crate) = 507196
+SHA256 (rust/crates/const-cstr-0.3.0.crate) = ed3d0b5ff30645a68f35ece8cea4556ca14ef8a1651455f789a099a0513532a6
+SIZE (rust/crates/const-cstr-0.3.0.crate) = 7497
+SHA256 (rust/crates/core-foundation-0.9.3.crate) = 194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146
+SIZE (rust/crates/core-foundation-0.9.3.crate) = 27059
+SHA256 (rust/crates/core-foundation-sys-0.8.3.crate) = 5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc
+SIZE (rust/crates/core-foundation-sys-0.8.3.crate) = 17519
+SHA256 (rust/crates/core-graphics-0.22.3.crate) = 2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb
+SIZE (rust/crates/core-graphics-0.22.3.crate) = 29514
+SHA256 (rust/crates/core-graphics-types-0.1.1.crate) = 3a68b68b3446082644c91ac778bf50cd4104bfb002b5a6a7c44cca5a2c70788b
+SIZE (rust/crates/core-graphics-types-0.1.1.crate) = 2530
+SHA256 (rust/crates/core-text-19.2.0.crate) = 99d74ada66e07c1cefa18f8abfba765b486f250de2e4a999e5727fc0dd4b4a25
+SIZE (rust/crates/core-text-19.2.0.crate) = 18446
+SHA256 (rust/crates/cpp_demangle-0.3.5.crate) = eeaa953eaad386a53111e47172c2fedba671e5684c8dd601a5f474f4f118710f
+SIZE (rust/crates/cpp_demangle-0.3.5.crate) = 75313
+SHA256 (rust/crates/cpufeatures-0.2.2.crate) = 59a6001667ab124aebae2a495118e11d30984c3a653e99d86d58971708cf5e4b
+SIZE (rust/crates/cpufeatures-0.2.2.crate) = 10655
+SHA256 (rust/crates/cranelift-bforest-0.86.1.crate) = 529ffacce2249ac60edba2941672dfedf3d96558b415d0d8083cd007456e0f55
+SIZE (rust/crates/cranelift-bforest-0.86.1.crate) = 30809
+SHA256 (rust/crates/cranelift-codegen-0.86.1.crate) = 427d105f617efc8cb55f8d036a7fded2e227892d8780b4985e5551f8d27c4a92
+SIZE (rust/crates/cranelift-codegen-0.86.1.crate) = 681397
+SHA256 (rust/crates/cranelift-codegen-meta-0.86.1.crate) = 551674bed85b838d45358e3eab4f0ffaa6790c70dc08184204b9a54b41cdb7d1
+SIZE (rust/crates/cranelift-codegen-meta-0.86.1.crate) = 70431
+SHA256 (rust/crates/cranelift-codegen-shared-0.86.1.crate) = 2b3a63ae57498c3eb495360944a33571754241e15e47e3bcae6082f40fec5866
+SIZE (rust/crates/cranelift-codegen-shared-0.86.1.crate) = 6169
+SHA256 (rust/crates/cranelift-entity-0.86.1.crate) = 11aa8aa624c72cc1c94ea3d0739fa61248260b5b14d3646f51593a88d67f3e6e
+SIZE (rust/crates/cranelift-entity-0.86.1.crate) = 26073
+SHA256 (rust/crates/cranelift-frontend-0.86.1.crate) = 544ee8f4d1c9559c9aa6d46e7aaeac4a13856d620561094f35527356c7d21bd0
+SIZE (rust/crates/cranelift-frontend-0.86.1.crate) = 34495
+SHA256 (rust/crates/cranelift-isle-0.86.1.crate) = ed16b14363d929b8c37e3c557d0a7396791b383ecc302141643c054343170aad
+SIZE (rust/crates/cranelift-isle-0.86.1.crate) = 46775
+SHA256 (rust/crates/cranelift-native-0.86.1.crate) = 51617cf8744634f2ed3c989c3c40cd6444f63377c6d994adab0d85807f3eb682
+SIZE (rust/crates/cranelift-native-0.86.1.crate) = 7249
+SHA256 (rust/crates/cranelift-wasm-0.86.1.crate) = e5a8073a41efc173fd19bad3f725c170c705df6da999fc47a738ff310225dd63
+SIZE (rust/crates/cranelift-wasm-0.86.1.crate) = 193891
+SHA256 (rust/crates/crc32fast-1.3.2.crate) = b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d
+SIZE (rust/crates/crc32fast-1.3.2.crate) = 38661
+SHA256 (rust/crates/crossbeam-channel-0.5.6.crate) = c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521
+SIZE (rust/crates/crossbeam-channel-0.5.6.crate) = 90292
+SHA256 (rust/crates/crossbeam-deque-0.8.2.crate) = 715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc
+SIZE (rust/crates/crossbeam-deque-0.8.2.crate) = 21237
+SHA256 (rust/crates/crossbeam-epoch-0.9.10.crate) = 045ebe27666471bb549370b4b0b3e51b07f56325befa4284db65fc89c02511b1
+SIZE (rust/crates/crossbeam-epoch-0.9.10.crate) = 46918
+SHA256 (rust/crates/crossbeam-utils-0.8.11.crate) = 51887d4adc7b564537b15adcfb307936f8075dfcd5f00dde9a9f1d29383682bc
+SIZE (rust/crates/crossbeam-utils-0.8.11.crate) = 40887
+SHA256 (rust/crates/darling-0.13.4.crate) = a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c
+SIZE (rust/crates/darling-0.13.4.crate) = 20895
+SHA256 (rust/crates/darling_core-0.13.4.crate) = 859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610
+SIZE (rust/crates/darling_core-0.13.4.crate) = 52937
+SHA256 (rust/crates/darling_macro-0.13.4.crate) = 9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835
+SIZE (rust/crates/darling_macro-0.13.4.crate) = 1910
+SHA256 (rust/crates/data-url-0.1.1.crate) = 3a30bfce702bcfa94e906ef82421f2c0e61c076ad76030c16ee5d2e9a32fe193
+SIZE (rust/crates/data-url-0.1.1.crate) = 20039
+SHA256 (rust/crates/deflate-1.0.0.crate) = c86f7e25f518f4b81808a2cf1c50996a61f5c2eb394b2393bd87f2a4780a432f
+SIZE (rust/crates/deflate-1.0.0.crate) = 62722
+SHA256 (rust/crates/digest-0.9.0.crate) = d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066
+SIZE (rust/crates/digest-0.9.0.crate) = 13247
+SHA256 (rust/crates/directories-4.0.1.crate) = f51c5d4ddabd36886dd3e1438cb358cdcb0d7c499cb99cb4ac2e38e18b5cb210
+SIZE (rust/crates/directories-4.0.1.crate) = 16040
+SHA256 (rust/crates/directories-next-2.0.0.crate) = 339ee130d97a610ea5a5872d2bbb130fdf68884ff09d3028b81bec8a1ac23bbc
+SIZE (rust/crates/directories-next-2.0.0.crate) = 15153
+SHA256 (rust/crates/dirs-3.0.2.crate) = 30baa043103c9d0c2a57cf537cc2f35623889dc0d405e6c3cccfadbc81c71309
+SIZE (rust/crates/dirs-3.0.2.crate) = 12184
+SHA256 (rust/crates/dirs-4.0.0.crate) = ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059
+SIZE (rust/crates/dirs-4.0.0.crate) = 12503
+SHA256 (rust/crates/dirs-next-2.0.0.crate) = b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1
+SIZE (rust/crates/dirs-next-2.0.0.crate) = 11689
+SHA256 (rust/crates/dirs-sys-0.3.7.crate) = 1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6
+SIZE (rust/crates/dirs-sys-0.3.7.crate) = 10597
+SHA256 (rust/crates/dirs-sys-next-0.1.2.crate) = 4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d
+SIZE (rust/crates/dirs-sys-next-0.1.2.crate) = 10681
+SHA256 (rust/crates/dlib-0.5.0.crate) = ac1b7517328c04c2aa68422fc60a41b92208182142ed04a25879c26c8f878794
+SIZE (rust/crates/dlib-0.5.0.crate) = 5788
+SHA256 (rust/crates/dmg-0.1.1.crate) = 7e565b39e64e4030c75320536cc18cd51f0636811c53d98a05f01ec5deb8dd8f
+SIZE (rust/crates/dmg-0.1.1.crate) = 8342
+SHA256 (rust/crates/dwrote-0.11.0.crate) = 439a1c2ba5611ad3ed731280541d36d2e9c4ac5e7fb818a27b604bdc5a6aa65b
+SIZE (rust/crates/dwrote-0.11.0.crate) = 21715
+SHA256 (rust/crates/dyn-clone-1.0.9.crate) = 4f94fa09c2aeea5b8839e414b7b841bf429fd25b9c522116ac97ee87856d88b2
+SIZE (rust/crates/dyn-clone-1.0.9.crate) = 11903
+SHA256 (rust/crates/either-1.7.0.crate) = 3f107b87b6afc2a64fd13cac55fe06d6c8859f12d4b14cbcdd2c67d0976781be
+SIZE (rust/crates/either-1.7.0.crate) = 15492
+SHA256 (rust/crates/encoding_rs-0.8.31.crate) = 9852635589dc9f9ea1b6fe9f05b50ef208c85c834a562f0c6abb1c475736ec2b
+SIZE (rust/crates/encoding_rs-0.8.31.crate) = 1370113
+SHA256 (rust/crates/encoding_rs_io-0.1.7.crate) = 1cc3c5651fb62ab8aa3103998dade57efdd028544bd300516baa31840c252a83
+SIZE (rust/crates/encoding_rs_io-0.1.7.crate) = 16969
+SHA256 (rust/crates/env_logger-0.9.0.crate) = 0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3
+SIZE (rust/crates/env_logger-0.9.0.crate) = 33573
+SHA256 (rust/crates/errno-0.2.8.crate) = f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1
+SIZE (rust/crates/errno-0.2.8.crate) = 9276
+SHA256 (rust/crates/errno-dragonfly-0.1.2.crate) = aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf
+SIZE (rust/crates/errno-dragonfly-0.1.2.crate) = 1810
+SHA256 (rust/crates/euclid-0.22.7.crate) = b52c2ef4a78da0ba68fbe1fd920627411096d2ac478f7f4c9f3a54ba6705bade
+SIZE (rust/crates/euclid-0.22.7.crate) = 75976
+SHA256 (rust/crates/exr-1.4.2.crate) = 14cc0e06fb5f67e5d6beadf3a382fec9baca1aa751c6d5368fdeee7e5932c215
+SIZE (rust/crates/exr-1.4.2.crate) = 235974
+SHA256 (rust/crates/fallible-iterator-0.2.0.crate) = 4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7
+SIZE (rust/crates/fallible-iterator-0.2.0.crate) = 18509
+SHA256 (rust/crates/fastrand-1.8.0.crate) = a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499
+SIZE (rust/crates/fastrand-1.8.0.crate) = 11369
+SHA256 (rust/crates/fern-0.6.1.crate) = 3bdd7b0849075e79ee9a1836df22c717d1eba30451796fdc631b04565dd11e2a
+SIZE (rust/crates/fern-0.6.1.crate) = 300402
+SHA256 (rust/crates/field-offset-0.3.4.crate) = 1e1c54951450cbd39f3dbcf1005ac413b49487dabf18a720ad2383eccfeffb92
+SIZE (rust/crates/field-offset-0.3.4.crate) = 6046
+SHA256 (rust/crates/file-per-thread-logger-0.1.5.crate) = 21e16290574b39ee41c71aeb90ae960c504ebaf1e2a1c87bd52aa56ed6e1a02f
+SIZE (rust/crates/file-per-thread-logger-0.1.5.crate) = 9244
+SHA256 (rust/crates/filetime-0.2.17.crate) = e94a7bbaa59354bc20dd75b67f23e2797b4490e9d6928203fb105c79e448c86c
+SIZE (rust/crates/filetime-0.2.17.crate) = 14484
+SHA256 (rust/crates/fixedbitset-0.2.0.crate) = 37ab347416e802de484e4d03c7316c48f1ecb56574dfd4a46a80f173ce1de04d
+SIZE (rust/crates/fixedbitset-0.2.0.crate) = 13597
+SHA256 (rust/crates/flate2-1.0.24.crate) = f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6
+SIZE (rust/crates/flate2-1.0.24.crate) = 70191
+SHA256 (rust/crates/float-cmp-0.5.3.crate) = 75224bec9bfe1a65e2d34132933f2de7fe79900c96a0174307554244ece8150e
+SIZE (rust/crates/float-cmp-0.5.3.crate) = 10893
+SHA256 (rust/crates/float-cmp-0.9.0.crate) = 98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4
+SIZE (rust/crates/float-cmp-0.9.0.crate) = 10102
+SHA256 (rust/crates/float-ord-0.2.0.crate) = 7bad48618fdb549078c333a7a8528acb57af271d0433bdecd523eb620628364e
+SIZE (rust/crates/float-ord-0.2.0.crate) = 7367
+SHA256 (rust/crates/float_next_after-0.1.5.crate) = 4fc612c5837986b7104a87a0df74a5460931f1c5274be12f8d0f40aa2f30d632
+SIZE (rust/crates/float_next_after-0.1.5.crate) = 5112
+SHA256 (rust/crates/fluent-bundle-0.15.2.crate) = e242c601dec9711505f6d5bbff5bedd4b61b2469f2e8bb8e57ee7c9747a87ffd
+SIZE (rust/crates/fluent-bundle-0.15.2.crate) = 32239
+SHA256 (rust/crates/fluent-langneg-0.13.0.crate) = 2c4ad0989667548f06ccd0e306ed56b61bd4d35458d54df5ec7587c0e8ed5e94
+SIZE (rust/crates/fluent-langneg-0.13.0.crate) = 11723
+SHA256 (rust/crates/fluent-syntax-0.11.0.crate) = c0abed97648395c902868fee9026de96483933faa54ea3b40d652f7dfe61ca78
+SIZE (rust/crates/fluent-syntax-0.11.0.crate) = 28524
+SHA256 (rust/crates/flume-0.10.14.crate) = 1657b4441c3403d9f7b3409e47575237dac27b1b5726df654a6ecbf92f0f7577
+SIZE (rust/crates/flume-0.10.14.crate) = 65389
+SHA256 (rust/crates/fnv-1.0.7.crate) = 3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1
+SIZE (rust/crates/fnv-1.0.7.crate) = 11266
+SHA256 (rust/crates/fontconfig-parser-0.5.0.crate) = 82cea2adebf32a9b104b8ffb308b5fb3b456f04cc76c294c3c85025c8a5d75f4
+SIZE (rust/crates/fontconfig-parser-0.5.0.crate) = 36856
+SHA256 (rust/crates/fontdb-0.5.4.crate) = e58903f4f8d5b58c7d300908e4ebe5289c1bfdf5587964330f12023b8ff17fd1
+SIZE (rust/crates/fontdb-0.5.4.crate) = 11929
+SHA256 (rust/crates/fontdb-0.9.1.crate) = 122fa73a5566372f9df09768a16e8e3dad7ad18abe07835f1f0b71f84078ba4c
+SIZE (rust/crates/fontdb-0.9.1.crate) = 14770
+SHA256 (rust/crates/foreign-types-0.3.2.crate) = f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1
+SIZE (rust/crates/foreign-types-0.3.2.crate) = 7504
+SHA256 (rust/crates/foreign-types-shared-0.1.1.crate) = 00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b
+SIZE (rust/crates/foreign-types-shared-0.1.1.crate) = 5672
+SHA256 (rust/crates/form_urlencoded-1.0.1.crate) = 5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191
+SIZE (rust/crates/form_urlencoded-1.0.1.crate) = 8773
+SHA256 (rust/crates/freetype-0.7.0.crate) = bee38378a9e3db1cc693b4f88d166ae375338a0ff75cb8263e1c601d51f35dc6
+SIZE (rust/crates/freetype-0.7.0.crate) = 20257
+SHA256 (rust/crates/freetype-sys-0.13.1.crate) = a37d4011c0cc628dfa766fcc195454f4b068d7afdc2adfd28861191d866e731a
+SIZE (rust/crates/freetype-sys-0.13.1.crate) = 1917785
+SHA256 (rust/crates/fs-set-times-0.17.1.crate) = a267b6a9304912e018610d53fe07115d8b530b160e85db4d2d3a59f3ddde1aec
+SIZE (rust/crates/fs-set-times-0.17.1.crate) = 14605
+SHA256 (rust/crates/fs2-0.4.3.crate) = 9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213
+SIZE (rust/crates/fs2-0.4.3.crate) = 13138
+SHA256 (rust/crates/fs_extra-1.2.0.crate) = 2022715d62ab30faffd124d40b76f4134a550a87792276512b18d63272333394
+SIZE (rust/crates/fs_extra-1.2.0.crate) = 29918
+SHA256 (rust/crates/fsevent-sys-4.1.0.crate) = 76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2
+SIZE (rust/crates/fsevent-sys-4.1.0.crate) = 4620
+SHA256 (rust/crates/fuchsia-zircon-0.3.3.crate) = 2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82
+SIZE (rust/crates/fuchsia-zircon-0.3.3.crate) = 22565
+SHA256 (rust/crates/fuchsia-zircon-sys-0.3.3.crate) = 3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7
+SIZE (rust/crates/fuchsia-zircon-sys-0.3.3.crate) = 7191
+SHA256 (rust/crates/futures-0.3.23.crate) = ab30e97ab6aacfe635fad58f22c2bb06c8b685f7421eb1e064a729e2a5f481fa
+SIZE (rust/crates/futures-0.3.23.crate) = 51097
+SHA256 (rust/crates/futures-channel-0.3.23.crate) = 2bfc52cbddcfd745bf1740338492bb0bd83d76c67b445f91c5fb29fae29ecaa1
+SIZE (rust/crates/futures-channel-0.3.23.crate) = 31951
+SHA256 (rust/crates/futures-core-0.3.23.crate) = d2acedae88d38235936c3922476b10fced7b2b68136f5e3c03c2d5be348a1115
+SIZE (rust/crates/futures-core-0.3.23.crate) = 14605
+SHA256 (rust/crates/futures-executor-0.3.23.crate) = 1d11aa21b5b587a64682c0094c2bdd4df0076c5324961a40cc3abd7f37930528
+SIZE (rust/crates/futures-executor-0.3.23.crate) = 17744
+SHA256 (rust/crates/futures-io-0.3.23.crate) = 93a66fc6d035a26a3ae255a6d2bca35eda63ae4c5512bef54449113f7a1228e5
+SIZE (rust/crates/futures-io-0.3.23.crate) = 8906
+SHA256 (rust/crates/futures-macro-0.3.23.crate) = 0db9cce532b0eae2ccf2766ab246f114b56b9cf6d445e00c2549fbc100ca045d
+SIZE (rust/crates/futures-macro-0.3.23.crate) = 11250
+SHA256 (rust/crates/futures-sink-0.3.23.crate) = ca0bae1fe9752cf7fd9b0064c674ae63f97b37bc714d745cbde0afb7ec4e6765
+SIZE (rust/crates/futures-sink-0.3.23.crate) = 7850
+SHA256 (rust/crates/futures-task-0.3.23.crate) = 842fc63b931f4056a24d59de13fb1272134ce261816e063e634ad0c15cdc5306
+SIZE (rust/crates/futures-task-0.3.23.crate) = 11825
+SHA256 (rust/crates/futures-util-0.3.23.crate) = f0828a5471e340229c11c77ca80017937ce3c58cb788a17e5f1c2d5c485a9577
+SIZE (rust/crates/futures-util-0.3.23.crate) = 155793
+SHA256 (rust/crates/fuzzy-matcher-0.3.7.crate) = 54614a3312934d066701a80f20f15fa3b56d67ac7722b39eea5b4c9dd1d66c94
+SIZE (rust/crates/fuzzy-matcher-0.3.7.crate) = 18047
+SHA256 (rust/crates/fxhash-0.2.1.crate) = c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c
+SIZE (rust/crates/fxhash-0.2.1.crate) = 4102
+SHA256 (rust/crates/gdk-0.14.3.crate) = b9d749dcfc00d8de0d7c3a289e04a04293eb5ba3d8a4e64d64911d481fa9933b
+SIZE (rust/crates/gdk-0.14.3.crate) = 79492
+SHA256 (rust/crates/gdk-pixbuf-0.14.0.crate) = 534192cb8f01daeb8fab2c8d4baa8f9aae5b7a39130525779f5c2608e235b10f
+SIZE (rust/crates/gdk-pixbuf-0.14.0.crate) = 14554
+SHA256 (rust/crates/gdk-pixbuf-sys-0.14.0.crate) = f097c0704201fbc8f69c1762dc58c6947c8bb188b8ed0bc7e65259f1894fe590
+SIZE (rust/crates/gdk-pixbuf-sys-0.14.0.crate) = 9110
+SHA256 (rust/crates/gdk-sys-0.14.0.crate) = 0e091b3d3d6696949ac3b3fb3c62090e5bfd7bd6850bef5c3c5ea701de1b1f1e
+SIZE (rust/crates/gdk-sys-0.14.0.crate) = 72899
+SHA256 (rust/crates/generic-array-0.14.6.crate) = bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9
+SIZE (rust/crates/generic-array-0.14.6.crate) = 15889
+SHA256 (rust/crates/getopts-0.2.21.crate) = 14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5
+SIZE (rust/crates/getopts-0.2.21.crate) = 18457
+SHA256 (rust/crates/getrandom-0.2.7.crate) = 4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6
+SIZE (rust/crates/getrandom-0.2.7.crate) = 28854
*** 1118 LINES SKIPPED ***