backport: 21.0.0
This commit is contained in:
parent
b360873857
commit
0a7d5cb4c6
218 changed files with 1194 additions and 591 deletions
18
CHANGELOG.md
18
CHANGELOG.md
|
@ -17,6 +17,24 @@ Changelog structure reference:
|
||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
## [21.0.0]
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- ZLS
|
||||||
|
- All of the config options are now exposed in the GUI
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Project
|
||||||
|
- New project panel is now much more compact
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Zig
|
||||||
|
- `zig env` failure causes an IDE error
|
||||||
|
- A local toolchain disappearing (std directory or zig exe deleted) is now handled properly
|
||||||
|
|
||||||
## [20.3.0]
|
## [20.3.0]
|
||||||
|
|
||||||
- Zig
|
- Zig
|
||||||
|
|
2
LICENSE
2
LICENSE
|
@ -1,5 +1,5 @@
|
||||||
ZigBrains
|
ZigBrains
|
||||||
Copyright (C) 2023-2024 FalsePattern
|
Copyright (C) 2023-2025 FalsePattern
|
||||||
All Rights Reserved
|
All Rights Reserved
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included
|
The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -109,6 +109,7 @@ dependencies {
|
||||||
|
|
||||||
runtimeOnly(project(":core"))
|
runtimeOnly(project(":core"))
|
||||||
runtimeOnly(project(":cidr"))
|
runtimeOnly(project(":cidr"))
|
||||||
|
runtimeOnly(project(":lsp"))
|
||||||
}
|
}
|
||||||
|
|
||||||
intellijPlatform {
|
intellijPlatform {
|
||||||
|
|
26
build.sh
26
build.sh
|
@ -1,18 +1,24 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#
|
#
|
||||||
# Copyright 2023-2024 FalsePattern
|
# This file is part of ZigBrains.
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Copyright (C) 2023-2025 FalsePattern
|
||||||
# you may not use this file except in compliance with the License.
|
# All Rights Reserved
|
||||||
# You may obtain a copy of the License at
|
|
||||||
#
|
#
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
# The above copyright notice and this permission notice shall be included
|
||||||
|
# in all copies or substantial portions of the Software.
|
||||||
#
|
#
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
# ZigBrains is free software: you can redistribute it and/or modify
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
# it under the terms of the GNU Lesser General Public License as published by
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# the Free Software Foundation, only version 3 of the License.
|
||||||
# See the License for the specific language governing permissions and
|
#
|
||||||
# limitations under the License.
|
# ZigBrains is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Lesser General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
|
# along with ZigBrains. If not, see <https://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,17 +1,23 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2023-2024 FalsePattern
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* you may not use this file except in compliance with the License.
|
* All Rights Reserved
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
*
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
* in all copies or substantial portions of the Software.
|
||||||
*
|
*
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
* ZigBrains is free software: you can redistribute it and/or modify
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
* it under the terms of the GNU Lesser General Public License as published by
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
* the Free Software Foundation, only version 3 of the License.
|
||||||
* See the License for the specific language governing permissions and
|
*
|
||||||
* limitations under the License.
|
* ZigBrains is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
|
* along with ZigBrains. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
package com.falsepattern.zigbrains.debugger.dap
|
package com.falsepattern.zigbrains.debugger.dap
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -7,8 +7,6 @@ plugins {
|
||||||
kotlin("plugin.serialization")
|
kotlin("plugin.serialization")
|
||||||
}
|
}
|
||||||
|
|
||||||
val lsp4ijVersion: String by project
|
|
||||||
val lsp4jVersion: String by project
|
|
||||||
val ideaCommunityVersion: String by project
|
val ideaCommunityVersion: String by project
|
||||||
val useInstaller = property("useInstaller").toString().toBoolean()
|
val useInstaller = property("useInstaller").toString().toBoolean()
|
||||||
|
|
||||||
|
@ -16,8 +14,6 @@ dependencies {
|
||||||
intellijPlatform {
|
intellijPlatform {
|
||||||
create(IntelliJPlatformType.IntellijIdeaCommunity, ideaCommunityVersion, useInstaller = useInstaller)
|
create(IntelliJPlatformType.IntellijIdeaCommunity, ideaCommunityVersion, useInstaller = useInstaller)
|
||||||
}
|
}
|
||||||
compileOnly("com.redhat.devtools.intellij:lsp4ij:$lsp4ijVersion")
|
|
||||||
compileOnly("org.eclipse.lsp4j:org.eclipse.lsp4j:$lsp4jVersion")
|
|
||||||
compileOnly("org.jetbrains.kotlinx:kotlinx-serialization-core:1.6.3")
|
compileOnly("org.jetbrains.kotlinx:kotlinx-serialization-core:1.6.3")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
@ -25,7 +25,6 @@ package com.falsepattern.zigbrains
|
||||||
import com.falsepattern.zigbrains.direnv.DirenvCmd
|
import com.falsepattern.zigbrains.direnv.DirenvCmd
|
||||||
import com.falsepattern.zigbrains.direnv.emptyEnv
|
import com.falsepattern.zigbrains.direnv.emptyEnv
|
||||||
import com.falsepattern.zigbrains.direnv.getDirenv
|
import com.falsepattern.zigbrains.direnv.getDirenv
|
||||||
import com.falsepattern.zigbrains.lsp.settings.zlsSettings
|
|
||||||
import com.falsepattern.zigbrains.project.settings.zigProjectSettings
|
import com.falsepattern.zigbrains.project.settings.zigProjectSettings
|
||||||
import com.falsepattern.zigbrains.project.toolchain.LocalZigToolchain
|
import com.falsepattern.zigbrains.project.toolchain.LocalZigToolchain
|
||||||
import com.falsepattern.zigbrains.project.toolchain.ZigToolchainProvider
|
import com.falsepattern.zigbrains.project.toolchain.ZigToolchainProvider
|
||||||
|
@ -89,17 +88,6 @@ class ZBStartup: ProjectActivity {
|
||||||
project.zigProjectSettings.state = zigProjectState
|
project.zigProjectSettings.state = zigProjectState
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
val zlsState = project.zlsSettings.state
|
|
||||||
if (zlsState.zlsPath.isBlank()) {
|
|
||||||
val env = if (DirenvCmd.direnvInstalled() && !project.isDefault && zlsState.direnv)
|
|
||||||
project.getDirenv()
|
|
||||||
else
|
|
||||||
emptyEnv
|
|
||||||
env.findExecutableOnPATH("zls")?.let {
|
|
||||||
zlsState.zlsPath = it.pathString
|
|
||||||
project.zlsSettings.state = zlsState
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,37 +0,0 @@
|
||||||
/*
|
|
||||||
* This file is part of ZigBrains.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
|
||||||
* All Rights Reserved
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included
|
|
||||||
* in all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* ZigBrains is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, only version 3 of the License.
|
|
||||||
*
|
|
||||||
* ZigBrains is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with ZigBrains. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.falsepattern.zigbrains.lsp.config
|
|
||||||
|
|
||||||
import kotlinx.serialization.SerialName
|
|
||||||
import kotlinx.serialization.Serializable
|
|
||||||
import org.jetbrains.annotations.NonNls
|
|
||||||
|
|
||||||
@Serializable
|
|
||||||
data class ZLSConfig(
|
|
||||||
@SerialName("zig_exe_path") val zigExePath: @NonNls String? = null,
|
|
||||||
@SerialName("zig_lib_path") val zigLibPath: @NonNls String? = null,
|
|
||||||
@SerialName("enable_build_on_save") val buildOnSave: Boolean? = null,
|
|
||||||
@SerialName("build_on_save_step") val buildOnSaveStep: @NonNls String? = null,
|
|
||||||
@SerialName("dangerous_comptime_experiments_do_not_enable") val comptimeInterpreter: Boolean? = null,
|
|
||||||
@SerialName("highlight_global_var_declarations") val globalVarDeclarations: Boolean? = null
|
|
||||||
)
|
|
|
@ -1,39 +0,0 @@
|
||||||
/*
|
|
||||||
* This file is part of ZigBrains.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
|
||||||
* All Rights Reserved
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included
|
|
||||||
* in all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* ZigBrains is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, only version 3 of the License.
|
|
||||||
*
|
|
||||||
* ZigBrains is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with ZigBrains. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.falsepattern.zigbrains.lsp.settings
|
|
||||||
|
|
||||||
import org.jetbrains.annotations.NonNls
|
|
||||||
|
|
||||||
data class ZLSSettings(
|
|
||||||
var direnv: Boolean = false,
|
|
||||||
var zlsPath: @NonNls String = "",
|
|
||||||
var zlsConfigPath: @NonNls String = "",
|
|
||||||
var debug: Boolean = false,
|
|
||||||
var messageTrace: Boolean = false,
|
|
||||||
var buildOnSave: Boolean = false,
|
|
||||||
var buildOnSaveStep: @NonNls String = "install",
|
|
||||||
var globalVarDeclarations: Boolean = false,
|
|
||||||
var comptimeInterpreter: Boolean = false,
|
|
||||||
var inlayHints: Boolean = true,
|
|
||||||
var inlayHintsCompact: Boolean = true
|
|
||||||
)
|
|
|
@ -1,148 +0,0 @@
|
||||||
/*
|
|
||||||
* This file is part of ZigBrains.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
|
||||||
* All Rights Reserved
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included
|
|
||||||
* in all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* ZigBrains is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, only version 3 of the License.
|
|
||||||
*
|
|
||||||
* ZigBrains is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with ZigBrains. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.falsepattern.zigbrains.lsp.settings
|
|
||||||
|
|
||||||
import com.falsepattern.zigbrains.direnv.DirenvCmd
|
|
||||||
import com.falsepattern.zigbrains.direnv.Env
|
|
||||||
import com.falsepattern.zigbrains.direnv.emptyEnv
|
|
||||||
import com.falsepattern.zigbrains.direnv.getDirenv
|
|
||||||
import com.falsepattern.zigbrains.lsp.ZLSBundle
|
|
||||||
import com.falsepattern.zigbrains.shared.coroutine.launchWithEDT
|
|
||||||
import com.falsepattern.zigbrains.shared.zigCoroutineScope
|
|
||||||
import com.intellij.openapi.Disposable
|
|
||||||
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory
|
|
||||||
import com.intellij.openapi.project.Project
|
|
||||||
import com.intellij.openapi.util.Disposer
|
|
||||||
import com.intellij.platform.ide.progress.ModalTaskOwner
|
|
||||||
import com.intellij.platform.ide.progress.TaskCancellation
|
|
||||||
import com.intellij.platform.ide.progress.withModalProgress
|
|
||||||
import com.intellij.ui.components.JBCheckBox
|
|
||||||
import com.intellij.ui.components.fields.ExtendableTextField
|
|
||||||
import com.intellij.ui.components.textFieldWithBrowseButton
|
|
||||||
import com.intellij.ui.dsl.builder.AlignX
|
|
||||||
import com.intellij.ui.dsl.builder.Panel
|
|
||||||
import kotlin.io.path.pathString
|
|
||||||
|
|
||||||
class ZLSSettingsPanel(private val project: Project?) : Disposable {
|
|
||||||
private val zlsPath = textFieldWithBrowseButton(
|
|
||||||
project,
|
|
||||||
ZLSBundle.message("settings.zls-path.browse.title"),
|
|
||||||
FileChooserDescriptorFactory.createSingleFileDescriptor(),
|
|
||||||
).also { Disposer.register(this, it) }
|
|
||||||
private val zlsConfigPath = textFieldWithBrowseButton(
|
|
||||||
project,
|
|
||||||
ZLSBundle.message("settings.zls-config-path.browse.title"),
|
|
||||||
FileChooserDescriptorFactory.createSingleFileDescriptor()
|
|
||||||
).also { Disposer.register(this, it) }
|
|
||||||
|
|
||||||
private val buildOnSave = JBCheckBox().apply { toolTipText = ZLSBundle.message("settings.build-on-save.tooltip") }
|
|
||||||
private val buildOnSaveStep = ExtendableTextField().apply { toolTipText = ZLSBundle.message("settings.build-on-save-step.tooltip") }
|
|
||||||
private val globalVarDeclarations = JBCheckBox()
|
|
||||||
private val comptimeInterpreter = JBCheckBox()
|
|
||||||
private val inlayHints = JBCheckBox()
|
|
||||||
private val inlayHintsCompact = JBCheckBox().apply { toolTipText = ZLSBundle.message("settings.inlay-hints-compact.tooltip") }
|
|
||||||
|
|
||||||
private val messageTrace = JBCheckBox()
|
|
||||||
private val debug = JBCheckBox()
|
|
||||||
private val direnv = JBCheckBox(ZLSBundle.message("settings.zls-path.use-direnv.label")).apply { addActionListener {
|
|
||||||
dispatchAutodetect(true)
|
|
||||||
} }
|
|
||||||
|
|
||||||
fun attach(panel: Panel) = with(panel) {
|
|
||||||
group(ZLSBundle.message("settings.group.title")) {
|
|
||||||
row(ZLSBundle.message("settings.zls-path.label")) {
|
|
||||||
cell(zlsPath).resizableColumn().align(AlignX.FILL)
|
|
||||||
if (DirenvCmd.direnvInstalled() && project?.isDefault == false) {
|
|
||||||
cell(direnv)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
row(ZLSBundle.message("settings.zls-config-path.label")) { cell(zlsConfigPath).align(AlignX.FILL) }
|
|
||||||
row(ZLSBundle.message("settings.inlay-hints.label")) { cell(inlayHints) }
|
|
||||||
row(ZLSBundle.message("settings.inlay-hints-compact.label")) { cell(inlayHintsCompact) }
|
|
||||||
row(ZLSBundle.message("settings.build-on-save.label")) { cell(buildOnSave) }
|
|
||||||
row(ZLSBundle.message("settings.build-on-save-step.label")) { cell(buildOnSaveStep).resizableColumn().align(AlignX.FILL) }
|
|
||||||
row(ZLSBundle.message("settings.global-var-declarations.label")) { cell(globalVarDeclarations) }
|
|
||||||
row(ZLSBundle.message("settings.comptime-interpreter.label")) { cell(comptimeInterpreter) }
|
|
||||||
}
|
|
||||||
group(ZLSBundle.message("dev-settings.group.title")) {
|
|
||||||
row(ZLSBundle.message("dev-settings.debug.label")) { cell(debug) }
|
|
||||||
row(ZLSBundle.message("dev-settings.message-trace.label")) { cell(messageTrace) }
|
|
||||||
}
|
|
||||||
dispatchAutodetect(false)
|
|
||||||
}
|
|
||||||
|
|
||||||
var data
|
|
||||||
get() = ZLSSettings(
|
|
||||||
direnv.isSelected,
|
|
||||||
zlsPath.text,
|
|
||||||
zlsConfigPath.text,
|
|
||||||
debug.isSelected,
|
|
||||||
messageTrace.isSelected,
|
|
||||||
buildOnSave.isSelected,
|
|
||||||
buildOnSaveStep.text,
|
|
||||||
globalVarDeclarations.isSelected,
|
|
||||||
comptimeInterpreter.isSelected,
|
|
||||||
inlayHints.isSelected,
|
|
||||||
inlayHintsCompact.isSelected
|
|
||||||
)
|
|
||||||
set(value) {
|
|
||||||
direnv.isSelected = value.direnv
|
|
||||||
zlsPath.text = value.zlsPath
|
|
||||||
zlsConfigPath.text = value.zlsConfigPath
|
|
||||||
debug.isSelected = value.debug
|
|
||||||
messageTrace.isSelected = value.messageTrace
|
|
||||||
buildOnSave.isSelected = value.buildOnSave
|
|
||||||
buildOnSaveStep.text = value.buildOnSaveStep
|
|
||||||
globalVarDeclarations.isSelected = value.globalVarDeclarations
|
|
||||||
comptimeInterpreter.isSelected = value.comptimeInterpreter
|
|
||||||
inlayHints.isSelected = value.inlayHints
|
|
||||||
inlayHintsCompact.isSelected = value.inlayHintsCompact
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun dispatchAutodetect(force: Boolean) {
|
|
||||||
project.zigCoroutineScope.launchWithEDT {
|
|
||||||
withModalProgress(ModalTaskOwner.component(zlsPath), "Detecting ZLS...", TaskCancellation.cancellable()) {
|
|
||||||
autodetect(force)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
suspend fun autodetect(force: Boolean) {
|
|
||||||
if (force || zlsPath.text.isBlank()) {
|
|
||||||
getDirenv().findExecutableOnPATH("zls")?.let {
|
|
||||||
if (force || zlsPath.text.isBlank()) {
|
|
||||||
zlsPath.text = it.pathString
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun dispose() {
|
|
||||||
}
|
|
||||||
|
|
||||||
private suspend fun getDirenv(): Env {
|
|
||||||
if (DirenvCmd.direnvInstalled() && project?.isDefault == false && direnv.isSelected)
|
|
||||||
return project.getDirenv()
|
|
||||||
return emptyEnv
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
@ -22,8 +22,7 @@
|
||||||
|
|
||||||
package com.falsepattern.zigbrains.project.newproject
|
package com.falsepattern.zigbrains.project.newproject
|
||||||
|
|
||||||
import com.falsepattern.zigbrains.lsp.settings.ZLSSettingsPanel
|
import com.falsepattern.zigbrains.project.settings.ZigProjectConfigurationProvider
|
||||||
import com.falsepattern.zigbrains.project.settings.ZigProjectSettingsPanel
|
|
||||||
import com.falsepattern.zigbrains.project.template.ZigExecutableTemplate
|
import com.falsepattern.zigbrains.project.template.ZigExecutableTemplate
|
||||||
import com.falsepattern.zigbrains.project.template.ZigInitTemplate
|
import com.falsepattern.zigbrains.project.template.ZigInitTemplate
|
||||||
import com.falsepattern.zigbrains.project.template.ZigLibraryTemplate
|
import com.falsepattern.zigbrains.project.template.ZigLibraryTemplate
|
||||||
|
@ -44,8 +43,7 @@ import javax.swing.ListSelectionModel
|
||||||
|
|
||||||
class ZigNewProjectPanel(private var handleGit: Boolean): Disposable {
|
class ZigNewProjectPanel(private var handleGit: Boolean): Disposable {
|
||||||
private val git = JBCheckBox()
|
private val git = JBCheckBox()
|
||||||
private val projConf = ZigProjectSettingsPanel(null).also { Disposer.register(this, it) }
|
private val panels = ZigProjectConfigurationProvider.createNewProjectSettingsPanels().onEach { Disposer.register(this, it) }
|
||||||
private val zlsConf = ZLSSettingsPanel(null).also { Disposer.register(this, it) }
|
|
||||||
private val templateList = JBList(JBList.createDefaultListModel(defaultTemplates)).apply {
|
private val templateList = JBList(JBList.createDefaultListModel(defaultTemplates)).apply {
|
||||||
selectionMode = ListSelectionModel.SINGLE_SELECTION
|
selectionMode = ListSelectionModel.SINGLE_SELECTION
|
||||||
selectedIndex = 0
|
selectedIndex = 0
|
||||||
|
@ -68,7 +66,7 @@ class ZigNewProjectPanel(private var handleGit: Boolean): Disposable {
|
||||||
|
|
||||||
fun getData(): ZigProjectConfigurationData {
|
fun getData(): ZigProjectConfigurationData {
|
||||||
val selectedTemplate = templateList.selectedValue
|
val selectedTemplate = templateList.selectedValue
|
||||||
return ZigProjectConfigurationData(handleGit && git.isSelected, projConf.data, zlsConf.data, selectedTemplate)
|
return ZigProjectConfigurationData(handleGit && git.isSelected, panels.map { it.data }, selectedTemplate)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun attach(p: Panel): Unit = with(p) {
|
fun attach(p: Panel): Unit = with(p) {
|
||||||
|
@ -85,8 +83,7 @@ class ZigNewProjectPanel(private var handleGit: Boolean): Disposable {
|
||||||
.align(AlignY.FILL)
|
.align(AlignY.FILL)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
projConf.attach(p)
|
panels.forEach { it.attach(p) }
|
||||||
zlsConf.attach(p)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun dispose() {
|
override fun dispose() {
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
@ -22,10 +22,7 @@
|
||||||
|
|
||||||
package com.falsepattern.zigbrains.project.newproject
|
package com.falsepattern.zigbrains.project.newproject
|
||||||
|
|
||||||
import com.falsepattern.zigbrains.lsp.settings.ZLSSettings
|
import com.falsepattern.zigbrains.project.settings.ZigProjectConfigurationProvider
|
||||||
import com.falsepattern.zigbrains.lsp.settings.zlsSettings
|
|
||||||
import com.falsepattern.zigbrains.project.settings.ZigProjectSettings
|
|
||||||
import com.falsepattern.zigbrains.project.settings.zigProjectSettings
|
|
||||||
import com.falsepattern.zigbrains.project.template.ZigInitTemplate
|
import com.falsepattern.zigbrains.project.template.ZigInitTemplate
|
||||||
import com.falsepattern.zigbrains.project.template.ZigProjectTemplate
|
import com.falsepattern.zigbrains.project.template.ZigProjectTemplate
|
||||||
import com.falsepattern.zigbrains.shared.zigCoroutineScope
|
import com.falsepattern.zigbrains.shared.zigCoroutineScope
|
||||||
|
@ -45,21 +42,21 @@ import kotlinx.coroutines.launch
|
||||||
@JvmRecord
|
@JvmRecord
|
||||||
data class ZigProjectConfigurationData(
|
data class ZigProjectConfigurationData(
|
||||||
val git: Boolean,
|
val git: Boolean,
|
||||||
val projConf: ZigProjectSettings,
|
val conf: List<ZigProjectConfigurationProvider.Settings>,
|
||||||
val zlsConf: ZLSSettings,
|
|
||||||
val selectedTemplate: ZigProjectTemplate
|
val selectedTemplate: ZigProjectTemplate
|
||||||
) {
|
) {
|
||||||
@RequiresBackgroundThread
|
@RequiresBackgroundThread
|
||||||
suspend fun generateProject(requestor: Any, project: Project, baseDir: VirtualFile, forceGitignore: Boolean): Boolean {
|
suspend fun generateProject(requestor: Any, project: Project, baseDir: VirtualFile, forceGitignore: Boolean): Boolean {
|
||||||
return reportProgress { reporter ->
|
return reportProgress { reporter ->
|
||||||
project.zigProjectSettings.loadState(projConf)
|
conf.forEach { it.apply(project) }
|
||||||
project.zlsSettings.loadState(zlsConf)
|
|
||||||
|
|
||||||
val template = selectedTemplate
|
val template = selectedTemplate
|
||||||
|
|
||||||
if (!reporter.indeterminateStep("Initializing project") {
|
if (!reporter.indeterminateStep("Initializing project") {
|
||||||
if (template is ZigInitTemplate) {
|
if (template is ZigInitTemplate) {
|
||||||
val toolchain = projConf.toolchain ?: run {
|
val toolchain = conf
|
||||||
|
.mapNotNull { it as? ZigProjectConfigurationProvider.ToolchainProvider }
|
||||||
|
.firstNotNullOfOrNull { it.toolchain } ?: run {
|
||||||
Notification(
|
Notification(
|
||||||
"zigbrains",
|
"zigbrains",
|
||||||
"Tried to generate project with zig init, but zig toolchain is invalid",
|
"Tried to generate project with zig init, but zig toolchain is invalid",
|
||||||
|
@ -77,12 +74,20 @@ data class ZigProjectConfigurationData(
|
||||||
return@indeterminateStep false
|
return@indeterminateStep false
|
||||||
}
|
}
|
||||||
val result = zig.callWithArgs(workDir, "init")
|
val result = zig.callWithArgs(workDir, "init")
|
||||||
|
if (result == null) {
|
||||||
|
Notification(
|
||||||
|
"zigbrains",
|
||||||
|
"\"zig init\" could not run because the zig executable was missing!",
|
||||||
|
NotificationType.ERROR
|
||||||
|
).notify(project)
|
||||||
|
return@indeterminateStep false
|
||||||
|
}
|
||||||
if (result.exitCode != 0) {
|
if (result.exitCode != 0) {
|
||||||
Notification(
|
Notification(
|
||||||
"zigbrains",
|
"zigbrains",
|
||||||
"\"zig init\" failed with exit code ${result.exitCode}! Check the IDE log files!",
|
"\"zig init\" failed with exit code ${result.exitCode}! Check the IDE log files!",
|
||||||
NotificationType.ERROR
|
NotificationType.ERROR
|
||||||
)
|
).notify(project)
|
||||||
System.err.println(result.stderr)
|
System.err.println(result.stderr)
|
||||||
return@indeterminateStep false
|
return@indeterminateStep false
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of ZigBrains.
|
* This file is part of ZigBrains.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023-2024 FalsePattern
|
* Copyright (C) 2023-2025 FalsePattern
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue