diff --git a/dev-ada/ada_language_server/Manifest b/dev-ada/ada_language_server/Manifest index a1ba3f56fc061..61ed22e67ba46 100644 --- a/dev-ada/ada_language_server/Manifest +++ b/dev-ada/ada_language_server/Manifest @@ -1 +1,2 @@ DIST ada_language_server-25.0.20241014.tar.gz 2364793 BLAKE2B 3ee87c31d6b455d667e346a1e27bf32456719726004955b5a4cc84a3a4952baa7496eb815b816e3a3e4b23d4642159a675d0dfe8c31ca03df0f9b0acc663dfe7 SHA512 7ac80d53ac73b6a3012dcf0bf99148dfffd745af7f8ab753549efcffc006533aca0b981a856da94ca4b39cf27730d93cc2cdc303f64292bed9acc616a6a1f0a6 +DIST ada_language_server-26.0.202411173.tar.gz 2387302 BLAKE2B 89e32aa9fe716f00e7ae7897ae7a622ebe81ec29dcaf771b28d059dafc553e28438d234ff4585eabf4d5fcf51767c7864b99a20210a353aca421ef7230a68b3f SHA512 fc639b182c2b40d94da48ebe619880773935cc568b6658125c7ece4f2e381c2c43444073a31831109cc0731a46ef57389f40754aca0884ddae150bb7445c8e10 diff --git a/dev-ada/ada_language_server/ada_language_server-26.0.202411173.ebuild b/dev-ada/ada_language_server/ada_language_server-26.0.202411173.ebuild new file mode 100644 index 0000000000000..f2447037ae1b5 --- /dev/null +++ b/dev-ada/ada_language_server/ada_language_server-26.0.202411173.ebuild @@ -0,0 +1,99 @@ +# Copyright 2021-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +ADA_COMPAT=( gcc_{14..15} ) +inherit ada multiprocessing + +DESCRIPTION="a Language Server Protocol for Ada/SPARK" +HOMEPAGE="https://github.com/AdaCore/ada_language_server" +SRC_URI="https://github.com/AdaCore/${PN}/archive/refs/tags/${PV}.tar.gz + -> ${P}.tar.gz" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~x86" +IUSE="gtk test" +RESTRICT="test" # Tests do not work + +RDEPEND="${ADA_DEPS} + dev-ada/ada_libfswatch:=[${ADA_USEDEP}] + dev-ada/AdaSAT:=[${ADA_USEDEP}] + >=dev-ada/gnatcoll-bindings-26:=[${ADA_USEDEP},shared] + >=dev-ada/gnatcoll-core-26:=[${ADA_USEDEP},shared] + >=dev-ada/gnatdoc-26:=[${ADA_USEDEP}] + >=dev-ada/gnatformat-26:=[${ADA_USEDEP}] + >=dev-ada/gpr-26.0.0:=[${ADA_USEDEP}] + dev-ada/lal-refactor:=[${ADA_USEDEP},shared(+)] + >=dev-ada/langkit-26:=[${ADA_USEDEP},shared(+)] + >=dev-ada/libadalang-26:=[${ADA_USEDEP}] + >=dev-ada/libadalang-tools-26:=[${ADA_USEDEP}] + >=dev-ada/libgpr-26:=[${ADA_USEDEP}] + dev-ada/prettier-ada:=[${ADA_USEDEP}] + dev-ada/spawn:=[${ADA_USEDEP},gtk?] + dev-ada/templates-parser:=[${ADA_USEDEP},shared(+)] + >=dev-ada/vss-text-26:=[${ADA_USEDEP}] + dev-ada/vss-extra:=[${ADA_USEDEP}] + >=dev-ada/xmlada-26:=[${ADA_USEDEP},shared] + dev-libs/gmp + sys-fs/fswatch:=" +DEPEND="${RDEPEND}" +BDEPEND=">=dev-ada/gprbuild-26[${ADA_USEDEP}] + test? ( dev-ada/e3-testsuite )" + +REQUIRED_USE="${ADA_REQUIRED_USE}" + +PATCHES=( + "${FILESDIR}"/${P}-gpr2.patch + "${FILESDIR}"/${P}-gnatformat.patch + "${FILESDIR}"/${P}-langkit.patch + "${FILESDIR}"/${P}-lal.patch + "${FILESDIR}"/${P}-vss.patch +) + +src_compile() { + gprbuild -v -m -j$(makeopts_jobs) -P gnat/lsp_server.gpr -p \ + -XLIBRARY_TYPE=relocatable -XXMLADA_BUILD=relocatable \ + -XGPR_BUILD=relocatable -cargs:Ada ${ADAFLAGS} -largs ${LDFLAGS} \ + || die + gprbuild -v -m -j$(makeopts_jobs) -P gnat/lsp_3_17.gpr -p \ + -XLIBRARY_TYPE=relocatable -XXMLADA_BUILD=relocatable \ + -XGPR_BUILD=relocatable -cargs:Ada ${ADAFLAGS} -largs ${LDFLAGS} \ + || die + gprbuild -v -m -j$(makeopts_jobs) -P gnat/tester.gpr -p \ + -XLIBRARY_TYPE=relocatable -XXMLADA_BUILD=relocatable \ + -XGPR_BUILD=relocatable -cargs:Ada ${ADAFLAGS} -largs ${LDFLAGS} \ + || die + gprbuild -v -m -j$(makeopts_jobs) -P gnat/lsp_client.gpr -p \ + -XLIBRARY_TYPE=relocatable -XXMLADA_BUILD=relocatable \ + -XGPR_BUILD=relocatable -cargs:Ada ${ADAFLAGS} -largs ${LDFLAGS} \ + || die + if use gtk; then + gprbuild -v -m -j$(makeopts_jobs) -P gnat/lsp_client_glib.gpr -p \ + -XLIBRARY_TYPE=relocatable -XXMLADA_BUILD=relocatable \ + -XGPR_BUILD=relocatable -cargs:Ada ${ADAFLAGS} -largs ${LDFLAGS} \ + || die + fi + mkdir -p integration/vscode/ada/x64/linux + cp -f .obj/server/ada_language_server integration/vscode/ada/x64/linux || die +} + +src_install() { + gprinstall -v -f -P gnat/lsp_server.gpr -p -r --mode=usage \ + --prefix="${D}"/usr -XLIBRARY_TYPE=relocatable \ + -XXMLADA_BUILD=relocatable -XGPR_BUILD=relocatable || die + gprinstall -v -f -P gnat/tester.gpr -p --prefix="${D}"/usr \ + -XLIBRARY_TYPE=relocatable -XXMLADA_BUILD=relocatable \ + -XGPR_BUILD=relocatable || die + gprinstall -v -f -P gnat/lsp_client.gpr -p -r --mode=dev \ + --prefix="${D}"/usr -XLIBRARY_TYPE=relocatable \ + -XXMLADA_BUILD=relocatable -XGPR_BUILD=relocatable || die + if use gtk; then + gprinstall -v -f -P gnat/lsp_client_glib.gpr -p -r --mode=dev \ + --prefix="${D}"/usr -XLIBRARY_TYPE=relocatable \ + -XXMLADA_BUILD=relocatable -XGPR_BUILD=relocatable || die + fi + rm "${D}"/usr/share/gpr/gnatcoll.gpr || die + einstalldocs +} diff --git a/dev-ada/ada_language_server/files/ada_language_server-26.0.202411173-gnatformat.patch b/dev-ada/ada_language_server/files/ada_language_server-26.0.202411173-gnatformat.patch new file mode 100644 index 0000000000000..c4a481361ccbd --- /dev/null +++ b/dev-ada/ada_language_server/files/ada_language_server-26.0.202411173-gnatformat.patch @@ -0,0 +1,51 @@ +From a04d8733651cf784e88d310a440f8bfa8773f64f Mon Sep 17 00:00:00 2001 +From: Joao Azevedo +Date: Wed, 12 Mar 2025 16:22:39 +0000 +Subject: [PATCH] Update to latest GNATformat API + +--- + source/ada/lsp-ada_documents.adb | 9 +++++---- + 1 file changed, 5 insertions(+), 4 deletions(-) + +diff --git a/source/ada/lsp-ada_documents.adb b/source/ada/lsp-ada_documents.adb +index a56072213..ca39160e0 100644 +--- a/source/ada/lsp-ada_documents.adb ++++ b/source/ada/lsp-ada_documents.adb +@@ -1,7 +1,7 @@ + ------------------------------------------------------------------------------ + -- Language Server Protocol -- + -- -- +--- Copyright (C) 2018-2023, AdaCore -- ++-- Copyright (C) 2018-2025, AdaCore -- + -- -- + -- This is free software; you can redistribute it and/or modify it under -- + -- terms of the GNU General Public License as published by the Free Soft- -- +@@ -21,6 +21,7 @@ with GNAT.Strings; + with GNATCOLL.Traces; + with GNATCOLL.VFS; + with Gnatformat.Configuration; ++with Gnatformat.Edits; + with Gnatformat.Formatting; + + with Langkit_Support.Symbols; +@@ -1450,7 +1451,7 @@ package body LSP.Ada_Documents is + + declare + Range_Formatted_Document : +- constant Gnatformat.Formatting.Formatted_Edits := ++ constant Gnatformat.Edits.Formatting_Edit_Type := + Gnatformat.Formatting.Range_Format + (Self.Unit (Context), + Self.To_Source_Location_Range (Span), +@@ -1458,9 +1459,9 @@ package body LSP.Ada_Documents is + + begin + return +- (Self.To_A_Range (Range_Formatted_Document.Edit.Location), ++ (Self.To_A_Range (Range_Formatted_Document.Text_Edit.Location), + VSS.Strings.Conversions.To_Virtual_String +- (Range_Formatted_Document.Edit.Text)); ++ (Range_Formatted_Document.Text_Edit.Text)); + end; + end Range_Format; + diff --git a/dev-ada/ada_language_server/files/ada_language_server-26.0.202411173-gpr2.patch b/dev-ada/ada_language_server/files/ada_language_server-26.0.202411173-gpr2.patch new file mode 100644 index 0000000000000..f01e09699fa84 --- /dev/null +++ b/dev-ada/ada_language_server/files/ada_language_server-26.0.202411173-gpr2.patch @@ -0,0 +1,20 @@ +--- a/source/ada/lsp-ada_contexts.adb 2025-12-25 21:37:25.412257712 +0100 ++++ b/source/ada/lsp-ada_contexts.adb 2025-12-25 21:39:02.018150826 +0100 +@@ -27,7 +27,7 @@ + with GPR2.Path_Name; + with GPR2.Project.Attribute; + with GPR2.Project.Attribute_Index; +-with GPR2.Project.View.Set; ++with GPR2.Project.View.Vector; + with GPR2.Build.Source; + with GPR2.Build.Source.Sets; + +@@ -640,7 +640,7 @@ + Self.External_Source_Dirs.Clear; + + declare +- Views : constant GPR2.Project.View.Set.Object := ++ Views : constant GPR2.Project.View.Vector.Object := + Root.Closure (Include_Self => True); + begin + for View of Views diff --git a/dev-ada/ada_language_server/files/ada_language_server-26.0.202411173-lal.patch b/dev-ada/ada_language_server/files/ada_language_server-26.0.202411173-lal.patch new file mode 100644 index 0000000000000..b62807ca4c01c --- /dev/null +++ b/dev-ada/ada_language_server/files/ada_language_server-26.0.202411173-lal.patch @@ -0,0 +1,34 @@ +From 3de3b12c288a47009c836b67f7bcd9fcfd4d438b Mon Sep 17 00:00:00 2001 +From: Romain Beguet +Date: Tue, 2 Sep 2025 15:50:52 +0200 +Subject: [PATCH] Update due to recent LAL API change. + +(cherry picked from commit 9a3378a9ab645737177e1b9236cc288f88f975ab) +--- + source/ada/lsp-ada_highlighters.adb | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/source/ada/lsp-ada_highlighters.adb b/source/ada/lsp-ada_highlighters.adb +index 6abe568aa..16db6036f 100644 +--- a/source/ada/lsp-ada_highlighters.adb ++++ b/source/ada/lsp-ada_highlighters.adb +@@ -741,7 +741,7 @@ package body LSP.Ada_Highlighters is + end case; + end To_Kind; + +- Failsafe_Def : Libadalang.Analysis.Refd_Def; ++ Failsafe_Decl : Libadalang.Analysis.Refd_Decl; + Def : Libadalang.Analysis.Defining_Name; + Decl : Libadalang.Analysis.Basic_Decl; + Kind : LSP.Enumerations.SemanticTokenTypes; +@@ -772,8 +772,8 @@ package body LSP.Ada_Highlighters is + Highlight_Token (Node.Token_Start, declaration); + end; + else +- Failsafe_Def := Node.P_Failsafe_Referenced_Def_Name (True); +- Def := Libadalang.Analysis.Defining_Name (Failsafe_Def.Def_Name); ++ Failsafe_Decl := Node.P_Failsafe_Referenced_Decl (True); ++ Def := Libadalang.Analysis.Defining_Name (Failsafe_Decl.Def_Name); + end if; + + if Node.Kind in Libadalang.Common.Ada_Name then diff --git a/dev-ada/ada_language_server/files/ada_language_server-26.0.202411173-langkit.patch b/dev-ada/ada_language_server/files/ada_language_server-26.0.202411173-langkit.patch new file mode 100644 index 0000000000000..ea467bdd34c0a --- /dev/null +++ b/dev-ada/ada_language_server/files/ada_language_server-26.0.202411173-langkit.patch @@ -0,0 +1,32 @@ +From 3c5a0e5a389c71645b94a8a9e8f78e448e3150d4 Mon Sep 17 00:00:00 2001 +From: Pierre-Marie de Rodat +Date: Mon, 14 Apr 2025 13:01:41 +0000 +Subject: [PATCH] lsp-utils.adb: update after recent internal API changes in + Langkit + +(cherry picked from commit 879c4216922414105ae747f9ab7fa02f3b302ab2) +--- + source/ada/lsp-utils.adb | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/source/ada/lsp-utils.adb b/source/ada/lsp-utils.adb +index f257d7327..8af9e71c6 100644 +--- a/source/ada/lsp-utils.adb ++++ b/source/ada/lsp-utils.adb +@@ -24,6 +24,7 @@ with Libadalang.Sources; + with Langkit_Support.Diagnostics; + with Langkit_Support.Symbols; + with Langkit_Support.Token_Data_Handlers; ++with Langkit_Support.Types; + with Pp.Actions; + + with VSS.Strings.Character_Iterators; +@@ -202,7 +203,7 @@ package body LSP.Utils is + + procedure Tokenize_Output is + Input : constant Libadalang.Lexer.Lexer_Input := +- (Kind => Libadalang.Common.Bytes_Buffer, ++ (Kind => Langkit_Support.Types.Bytes_Buffer, + Charset => Ada.Strings.Unbounded.To_Unbounded_String ("utf-8"), + Read_BOM => False, + Bytes => To_Unbounded_String (Output)); diff --git a/dev-ada/ada_language_server/files/ada_language_server-26.0.202411173-vss.patch b/dev-ada/ada_language_server/files/ada_language_server-26.0.202411173-vss.patch new file mode 100644 index 0000000000000..0643d8fd2cb18 --- /dev/null +++ b/dev-ada/ada_language_server/files/ada_language_server-26.0.202411173-vss.patch @@ -0,0 +1,32 @@ +From 7b030ed859fa2a97aebfae3c52edf5735466827d Mon Sep 17 00:00:00 2001 +From: Vadim Godunko +Date: Tue, 29 Jul 2025 15:19:04 +0400 +Subject: [PATCH] Add dependency from `vss_os.gpr` + +(cherry picked from commit 163e295cfaf46efb4c8d2d0956398ad710e570ba) +--- + gnat/lsp_server.gpr | 3 ++- + gnat/tester.gpr | 3 ++- + 2 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/gnat/tester.gpr b/gnat/tester.gpr +index 5693dc003..007990f15 100644 +--- a/gnat/tester.gpr ++++ b/gnat/tester.gpr +@@ -1,7 +1,7 @@ + ------------------------------------------------------------------------------ + -- Language Server Protocol -- + -- -- +--- Copyright (C) 2018, AdaCore -- ++-- Copyright (C) 2018-2025, AdaCore -- + -- -- + -- This is free software; you can redistribute it and/or modify it under -- + -- terms of the GNU General Public License as published by the Free Soft- -- +@@ -17,6 +17,7 @@ + + with "lsp_client"; + with "gnatcoll"; ++with "vss_os.gpr"; + + project Tester is +