diff --git a/app-text/ltex-ls-plus/Manifest b/app-text/ltex-ls-plus/Manifest
new file mode 100644
index 0000000..31b81a4
--- /dev/null
+++ b/app-text/ltex-ls-plus/Manifest
@@ -0,0 +1,6 @@
+AUX languagetool.desktop 191 BLAKE2B 726e670645f78c3ea11c788a6440116753d66cf9886155ffa0f9cfad7deab000891276526aea17bae4977472c5d154837fb779de6abdb9cbe47148ce6ff96fe7 SHA512 d54542d4e742e83a7514857a11756f66966a9714f0f7b781aabd635b14cfa4f4d2b0fc1f98b2148af92e469fe877ffb61995c2abe5f59678174eae1d9c3dcbfe
+AUX languagetool.initd 473 BLAKE2B 74f55cfaf5b6c2e2fa166533c031408dc7e2e2b1882e6e09227af38e500f12481a551e8cec166620c73e671f00063cb63cc9dda500355110ff048d806dfa2d77 SHA512 fb9ab4fa28df1f43791995557fc4568ee79f7af7991481d295c28739c975c6648999676ea078ee852dc3dc9f49fbb9945c9dc571c385dd4db3d69ca5bf501623
+AUX logo.svg 2824 BLAKE2B 7653478b44ebd3dc80691849751745aba14a652d1ffaf52ef27910a52fae15b39c9ef0224795f698b1ac6f95a3e677ee46603b29261dff0d50d9eedba5e09de5 SHA512 501e3dee99f762556774f42829a9e450fc412271a7ade87f17ffb211929d24564ea3385b2bfc1c261e46d4b0b3562be62903b111ecd1c7dacb97c3c8ffb0d6d5
+DIST ltex-ls-plus-18.5.1.tar.gz 259544623 BLAKE2B 23b610ef280626b06f30807071f7e22ee68dd7fe1a9f46f7ff007d6a2cea97d28696220ce1c4183ea2f9cab8417d79bc3e827113411210b04cdeb7e6b7d24385 SHA512 de0d2cfef9646766c8cb13049b02eb7da5b5f04f4521858d80361e232743389f71856ae89432f659a67f6d934b8f9e685209a1a3a3b9cdb4c7b9aabfc3619179
+EBUILD ltex-ls-plus-18.5.1.ebuild 2590 BLAKE2B 351932d63cf7f10c133f88969dcf87a60583068cb3923ab1a13558b784560563d602f73ae7dd3f7f69655f5b79c01de04f4bf0e469c2d8b3a05898dd87aadd2a SHA512 c4c3abd79cf9207a8c58e836673068f053fb98e88855ac0a44fd2f9435cb8986927260ab027836b3fc33e003d231d1fb4a1a5e03d9b52f59550aef72c490515e
+MISC metadata.xml 347 BLAKE2B 1f1cb90d52bbc97720594eb2103791a23e462ae11155ce113740a310d39b40223b547e481c310299abcaaeb339068a9a3f97e4dcfa7cfeb1d75ef5449ab0ae7d SHA512 f27073ac2beba3ce58e2e68f58f80a9681d16fa1bc812c5aca7f00113213a14eab68b8acaafc46e9053107903e17c7e88db76a87951db17d4d89bb82f04fb704
diff --git a/app-text/ltex-ls-plus/files/languagetool.desktop b/app-text/ltex-ls-plus/files/languagetool.desktop
new file mode 100644
index 0000000..fb65a04
--- /dev/null
+++ b/app-text/ltex-ls-plus/files/languagetool.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Name=LanguageTool
+Exec=languagetool-gui
+Type=Application
+Terminal=false
+GenericName=LanguageTool
+Comment=LanguageTool
+StartupNotify=false
+Icon=languagetool
+Categories=Office;
diff --git a/app-text/ltex-ls-plus/files/languagetool.initd b/app-text/ltex-ls-plus/files/languagetool.initd
new file mode 100644
index 0000000..30a72a9
--- /dev/null
+++ b/app-text/ltex-ls-plus/files/languagetool.initd
@@ -0,0 +1,19 @@
+#!/sbin/openrc-run
+# Distributed under the terms of the GNU General Public License v2
+
+depend() {
+ after modules
+}
+
+start() {
+ ebegin "Starting languagetool [server]"
+ start-stop-daemon --start --background --exec /bin/bash /usr/bin/languagetool-server \
+ --config "/etc/languagetool.cfg" --allow-origin "*" --port 8081
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping languagetool [server]"
+ start-stop-daemon --stop --exec /bin/bash /usr/bin/languagetool-server
+ eend $?
+}
diff --git a/app-text/ltex-ls-plus/files/logo.svg b/app-text/ltex-ls-plus/files/logo.svg
new file mode 100644
index 0000000..3bc5b67
--- /dev/null
+++ b/app-text/ltex-ls-plus/files/logo.svg
@@ -0,0 +1,14 @@
+
diff --git a/app-text/ltex-ls-plus/ltex-ls-plus-18.5.1.ebuild b/app-text/ltex-ls-plus/ltex-ls-plus-18.5.1.ebuild
new file mode 100644
index 0000000..893f0a9
--- /dev/null
+++ b/app-text/ltex-ls-plus/ltex-ls-plus-18.5.1.ebuild
@@ -0,0 +1,92 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+inherit java-pkg-2
+
+DESCRIPTION="LSP language server for LanguageTool supporting LaTeX, Markdown, and others"
+HOMEPAGE="https://ltex-plus.github.io/ltex-plus/"
+SRC_URI="https://github.com/ltex-plus/ltex-ls-plus/releases/download/${PV}/${P}.tar.gz"
+
+LICENSE="MPL-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+CP_DEPEND="
+ dev-java/HdrHistogram:0
+ dev-java/slf4j-api:0
+ dev-java/slf4j-nop:0
+ dev-java/guava:0
+ dev-java/icu4j:0
+ dev-java/jansi:2
+ dev-java/commons-lang:3.6
+ dev-java/commons-logging:0
+ dev-java/commons-text:0
+ dev-java/jackson-core:0
+ dev-java/jackson-annotations:2
+ dev-java/jackson-databind:0
+ dev-java/jaxb-api:2
+ dev-java/jaxb-runtime:4
+ dev-java/picocli:0
+ dev-java/protobuf-java:0
+ dev-java/stax2-api:0
+ dev-java/woodstox-core:0
+ dev-java/json:0
+ dev-java/j2objc-annotations:0
+ dev-java/istack-commons-runtime:0
+ dev-java/hamcrest-core:1.3
+ dev-java/failureaccess:0
+ dev-java/error-prone-annotations:0
+"
+
+RDEPEND="
+ >=virtual/jre-1.8
+ ${CP_DEPEND}
+"
+
+src_prepare() {
+ default
+
+ rm lib/{HdrHistogram,slf4j,guava,icu4j,junit,hamcrest-core}*.jar || die
+ # rm lib/jansi*.jar || die # somewhy removing it causes ltex-ls to stop produce colors/boldness ascii-sequences
+ rm lib/checker-qual-*.jar || die # may cuse breakages. Needs testing.
+ rm lib/{commons-{lang3,text,logging},error_prone_annotations,failureaccess,istack-commons-runtime}*.jar || die
+ rm lib/{j2objc-annotations,jackson,jaxb-api,json,picocli,protobuf-java,stax2-api,woodstox-core}*.jar || die
+
+ mv lib/"${P/x-l/xl}".jar lib/"${PN}".jar || die
+
+ java-pkg-2_src_prepare
+}
+
+src_compile() { :; }
+
+_gen-cp() {
+ debug-print-function ${FUNCNAME} "${@}"
+
+ local atom
+ local pat="/(([[:alnum:]+_-]+)-[0-9]+(\.[0-9]+)*[a-z]?(_[[:alnum:]]+)*(-r[0-9]*)?|[[:alnum:]+_-]+):([[:alnum:]+_.-]+)"
+ for atom in ${CP_DEPEND}; do
+ if [[ ${atom} =~ ${pat} ]]; then
+ atom=${BASH_REMATCH[2]:-${BASH_REMATCH[1]}}
+ [[ ${BASH_REMATCH[6]} != 0 ]] && atom+=-${BASH_REMATCH[6]}
+ local regex="(^|\s|,)${atom}($|\s|,)"
+ [[ ${!1} =~ ${regex} ]] || declare -g ${1}+=${!1:+,}${atom}
+ else
+ die "Invalid CP_DEPEND atom ${atom}, ensure a SLOT is included"
+ fi
+ done
+}
+
+src_install() {
+ java-pkg_dojar lib/*.jar
+
+ java-pkg_dolauncher ${PN} --main org.bsplines.ltexls.LtexLanguageServerLauncher
+ # java-pkg_dolauncher ${PN}-cli --main org.bsplines.lspcli.LspCliLauncher
+ # TODO: integrate with json from bin/
+
+ dodoc ACKNOWLEDGMENTS.md README.md
+
+ unset MY_DEPEND
+ _gen-cp MY_DEPEND
+ java-pkg_register-dependency "${MY_DEPEND}"
+}
diff --git a/app-text/ltex-ls-plus/metadata.xml b/app-text/ltex-ls-plus/metadata.xml
new file mode 100644
index 0000000..5e84122
--- /dev/null
+++ b/app-text/ltex-ls-plus/metadata.xml
@@ -0,0 +1,11 @@
+
+
+
+
+ vim@gentoo.org
+ Gentoo Vim Project
+
+
+ ltex-plus/ltex-ls-plus
+
+
diff --git a/metadata/md5-cache/app-text/ltex-ls-plus-18.5.1 b/metadata/md5-cache/app-text/ltex-ls-plus-18.5.1
new file mode 100644
index 0000000..416e933
--- /dev/null
+++ b/metadata/md5-cache/app-text/ltex-ls-plus-18.5.1
@@ -0,0 +1,13 @@
+DEFINED_PHASES=compile install preinst prepare setup
+DEPEND=>=dev-java/java-config-2.2.0-r3
+DESCRIPTION=LSP language server for LanguageTool supporting LaTeX, Markdown, and others
+EAPI=8
+HOMEPAGE=https://ltex-plus.github.io/ltex-plus/
+INHERIT=java-pkg-2
+KEYWORDS=~amd64 ~x86
+LICENSE=MPL-2.0
+RDEPEND=>=virtual/jre-1.8 dev-java/HdrHistogram:0 dev-java/slf4j-api:0 dev-java/slf4j-nop:0 dev-java/guava:0 dev-java/icu4j:0 dev-java/jansi:2 dev-java/commons-lang:3.6 dev-java/commons-logging:0 dev-java/commons-text:0 dev-java/jackson-core:0 dev-java/jackson-annotations:2 dev-java/jackson-databind:0 dev-java/jaxb-api:2 dev-java/jaxb-runtime:4 dev-java/picocli:0 dev-java/protobuf-java:0 dev-java/stax2-api:0 dev-java/woodstox-core:0 dev-java/json:0 dev-java/j2objc-annotations:0 dev-java/istack-commons-runtime:0 dev-java/hamcrest-core:1.3 dev-java/failureaccess:0 dev-java/error-prone-annotations:0 >=dev-java/java-config-2.2.0-r3
+SLOT=0
+SRC_URI=https://github.com/ltex-plus/ltex-ls-plus/releases/download/18.5.1/ltex-ls-plus-18.5.1.tar.gz
+_eclasses_=java-utils-2 a080d4947ca188a48725a375b6184bc5 java-pkg-2 38fd81c7880666a00a638ca8deb64d72
+_md5_=4e7bb5980cd43626c889e6f86ffe0629