Skip to content

Commit 2065e07

Browse files
committed
Merge branch 'develop' into update-from-template-merged
2 parents 82176a1 + a00c84d commit 2065e07

File tree

130 files changed

+9638
-20
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

130 files changed

+9638
-20
lines changed

.github/FUNDING.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
github: pmd
2+
open_collective: pmd

.github/ISSUE_TEMPLATE/bug_report.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ body:
1515
attributes:
1616
label: "Checklist"
1717
options:
18-
- label: "I am able to reproduce the bug with the [latest version](https://github.com/xdev-software/template-placeholder/releases/latest)"
18+
- label: "I am able to reproduce the bug with the [latest version](https://github.com/xdev-software/intellij-plugin-pmd/releases/latest)"
1919
required: true
20-
- label: "I made sure that there are *no existing issues* - [open](https://github.com/xdev-software/template-placeholder/issues) or [closed](https://github.com/xdev-software/template-placeholder/issues?q=is%3Aissue+is%3Aclosed) - which I could contribute my information to."
20+
- label: "I made sure that there are *no existing issues* - [open](https://github.com/xdev-software/intellij-plugin-pmd/issues) or [closed](https://github.com/xdev-software/intellij-plugin-pmd/issues?q=is%3Aissue+is%3Aclosed) - which I could contribute my information to."
2121
required: true
2222
- label: "I have taken the time to fill in all the required details. I understand that the bug report will be dismissed otherwise."
2323
required: true

.github/ISSUE_TEMPLATE/enhancement.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ body:
1313
attributes:
1414
label: "Checklist"
1515
options:
16-
- label: "I made sure that there are *no existing issues* - [open](https://github.com/xdev-software/template-placeholder/issues) or [closed](https://github.com/xdev-software/template-placeholder/issues?q=is%3Aissue+is%3Aclosed) - which I could contribute my information to."
16+
- label: "I made sure that there are *no existing issues* - [open](https://github.com/xdev-software/intellij-plugin-pmd/issues) or [closed](https://github.com/xdev-software/intellij-plugin-pmd/issues?q=is%3Aissue+is%3Aclosed) - which I could contribute my information to."
1717
required: true
1818
- label: "I have taken the time to fill in all the required details. I understand that the feature request will be dismissed otherwise."
1919
required: true

.github/ISSUE_TEMPLATE/question.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ body:
1212
attributes:
1313
label: "Checklist"
1414
options:
15-
- label: "I made sure that there are *no existing issues* - [open](https://github.com/xdev-software/template-placeholder/issues) or [closed](https://github.com/xdev-software/template-placeholder/issues?q=is%3Aissue+is%3Aclosed) - which I could contribute my information to."
15+
- label: "I made sure that there are *no existing issues* - [open](https://github.com/xdev-software/intellij-plugin-pmd/issues) or [closed](https://github.com/xdev-software/intellij-plugin-pmd/issues?q=is%3Aissue+is%3Aclosed) - which I could contribute my information to."
1616
required: true
1717
- label: "I have taken the time to fill in all the required details. I understand that the question will be dismissed otherwise."
1818
required: true

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# 1.0.1
2+
* Workaround inaccurate analysis due to outdated classpath #6
3+
* Add some additional details why an analysis was not executed
4+
5+
# 1.0.0
6+
_Initial release_
7+
8+
* Bundled PMD version: 7.18.0
9+
* Support for Java and Kotlin

CONTRIBUTING.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,17 +46,17 @@ Start idea and import the `build.gradle` file with "File > Open". Then in the "I
4646
./gradlew cleanIdea idea
4747
```
4848

49-
IntelliJ should refresh and the project is now configured as a gradle project. You can find IntelliJ gradle tasks in "Gradle > Gradle projects > template-placeholder > Tasks > intellij". To run the plugin, use the `runIde` task:
49+
IntelliJ should refresh and the project is now configured as a gradle project. You can find IntelliJ gradle tasks in "Gradle > Gradle projects > intellij-plugin-pmd > Tasks > intellij". To run the plugin, use the `runIde` task:
5050

5151
```bash
5252
# Run the plugin (starts new idea)
5353
./gradlew runIde
5454
```
5555

56-
## Releasing [![Build](https://img.shields.io/github/actions/workflow/status/xdev-software/template-placeholder/release.yml?branch=master)](https://github.com/xdev-software/template-placeholder/actions/workflows/release.yml)
56+
## Releasing [![Build](https://img.shields.io/github/actions/workflow/status/xdev-software/intellij-plugin-pmd/release.yml?branch=master)](https://github.com/xdev-software/intellij-plugin-pmd/actions/workflows/release.yml)
5757

5858
Before releasing:
59-
* Consider doing a [test-deployment](https://github.com/xdev-software/template-placeholder/actions/workflows/test-deploy.yml?query=branch%3Adevelop) before actually releasing.
59+
* Consider doing a [test-deployment](https://github.com/xdev-software/intellij-plugin-pmd/actions/workflows/test-deploy.yml?query=branch%3Adevelop) before actually releasing.
6060
* Check the [changelog](CHANGELOG.md)
6161

6262
If the ``develop`` is ready for release, create a pull request to the ``master``-Branch and merge the changes

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@
186186
same "printed page" as the copyright notice for easier
187187
identification within third-party archives.
188188

189-
Copyright 2024 XDEV Software
189+
Copyright 2025 XDEV Software
190190

191191
Licensed under the Apache License, Version 2.0 (the "License");
192192
you may not use this file except in compliance with the License.

README.md

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,36 @@
1-
[![Latest version](https://img.shields.io/jetbrains/plugin/v/pluginId?logo=jetbrains)](https://plugins.jetbrains.com/plugin/pluginId)
2-
[![Build](https://img.shields.io/github/actions/workflow/status/xdev-software/template-placeholder/check-build.yml?branch=develop)](https://github.com/xdev-software/template-placeholder/actions/workflows/check-build.yml?query=branch%3Adevelop)
3-
[![Feel free to leave a rating](https://img.shields.io/jetbrains/plugin/r/rating/pluginId?style=social&logo=jetbrains&label=Feel%20free%20to%20leave%20a%20rating)](https://plugins.jetbrains.com/plugin/pluginId/reviews)
1+
[![Latest version](https://img.shields.io/jetbrains/plugin/v/28935?logo=jetbrains)](https://plugins.jetbrains.com/plugin/28935)
2+
[![Build](https://img.shields.io/github/actions/workflow/status/xdev-software/intellij-plugin-pmd/check-build.yml?branch=develop)](https://github.com/xdev-software/intellij-plugin-pmd/actions/workflows/check-build.yml?query=branch%3Adevelop)
3+
[![Feel free to leave a rating](https://img.shields.io/jetbrains/plugin/r/rating/28935?style=social&logo=jetbrains&label=Feel%20free%20to%20leave%20a%20rating)](https://plugins.jetbrains.com/plugin/28935/reviews)
44

5-
# <img alt="Plugin icon" src="./src/main/resources/META-INF/pluginIcon.svg" width="30"> template-placeholder
5+
# <img alt="Plugin icon" src="./src/main/resources/META-INF/pluginIcon.svg" width="30"> PMD X
66

7+
A plugin for IntelliJ that provides code analysis and highlighting with <a href="https://pmd.github.io">PMD</a> - an extensible cross-language static code analyzer.
78

9+
## Features
10+
* Optimized for real-time analysis and zero configuration project setups that just require you to checkout the code
11+
* Real-time analysis and highlighting of currently edited file
12+
* Run bulk analysis of files by right clicking the project menu <br/> <img src="./assets/run-bulk-analysis.avif"> <br/> <img src="./assets/toolwindow-report.avif">
13+
* Currently Java and Kotlin are supported, Language versions are automatically detected
14+
15+
## Usage
16+
1. Install the plugin and open a project
17+
2. Configure PMD for the project (`Settings > Tools > PMD`) <br/><img height=500 src="./assets/project-configuration.avif">
18+
* If there is already a project configuration file (`.idea/pmd-x.xml`) present this will be done automatically
19+
3. Open a supported file
20+
4. You should see the problems being automatically highlighted in the file and find more details in the PMD tool window <br/> <img src="./assets/annotator.avif"> <br/> <img src="./assets/toolwindow-current-file.avif">
821

922
## Installation
10-
[Installation guide for the latest release](https://github.com/xdev-software/template-placeholder/releases/latest#Installation)
23+
[Installation guide for the latest release](https://github.com/xdev-software/intellij-plugin-pmd/releases/latest#Installation)
1124

1225
> [!TIP]
13-
> [Development versions](https://plugins.jetbrains.com/plugin/pluginId/versions/snapshot) can be installed by [adding the ``snapshot`` release channel as a plugin repository](https://www.jetbrains.com/help/idea/managing-plugins.html#repos):<br/>
26+
> [Development versions](https://plugins.jetbrains.com/plugin/28935/versions/snapshot) can be installed by [adding the ``snapshot`` release channel as a plugin repository](https://www.jetbrains.com/help/idea/managing-plugins.html#repos):<br/>
1427
> ``https://plugins.jetbrains.com/plugins/snapshot/list``
1528
1629
## Contributing
1730
See the [contributing guide](./CONTRIBUTING.md) for detailed instructions on how to get started with our project.
31+
32+
## Acknowledgment
33+
This plugin was inspired by existing plugin like [CheckStyle-IDEA](https://plugins.jetbrains.com/plugin/1065-checkstyle-idea), [Sonarlint](https://plugins.jetbrains.com/plugin/7973-sonarqube-for-ide) and "[PMD](https://plugins.jetbrains.com/plugin/1137-pmd)".
34+
Please have a look at [`THIRD-PARTY-CREDITS`](./THIRD-PARTY-CREDITS.md) for more details.
35+
36+
<sub>Disclaimer: This is not an official PMD project and not associated</sub>

SECURITY.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22

33
## Reporting a Vulnerability
44

5-
Please report a security vulnerability [on GitHub Security Advisories](https://github.com/xdev-software/template-placeholder/security/advisories/new).
5+
Please report a security vulnerability [on GitHub Security Advisories](https://github.com/xdev-software/intellij-plugin-pmd/security/advisories/new).

THIRD-PARTY-CREDITS.md

Lines changed: 229 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,229 @@
1+
Parts of the code are derived or inspired from code of other projects.
2+
The corresponding licenses are noted here:
3+
4+
#### [CheckStyle-IDEA](https://github.com/jshiell/checkstyle-idea)
5+
```
6+
(c) Copyright 2006-2022 CheckStyle-IDEA Contributors
7+
All rights reserved.
8+
9+
Redistribution and use in source and binary forms, with or without
10+
modification, are permitted provided that the following conditions are met:
11+
12+
* Redistributions of source code must retain the above copyright notice, this
13+
list of conditions and the following disclaimer.
14+
15+
* Redistributions in binary form must reproduce the above copyright notice, this
16+
list of conditions and the following disclaimer in the documentation and/or
17+
other materials provided with the distribution.
18+
19+
* Neither the name of the author nor the names of its contributors may
20+
be used to endorse or promote products derived from this software without
21+
specific prior written permission.
22+
23+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
24+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26+
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
27+
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
28+
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
29+
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
30+
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
31+
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
32+
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33+
POSSIBILITY OF SUCH DAMAGE.
34+
```
35+
36+
#### [SonarQube for IntelliJ Plugin (ex. Sonarlint)](https://github.com/SonarSource/sonarlint-intellij)
37+
```
38+
GNU LESSER GENERAL PUBLIC LICENSE
39+
Version 3, 29 June 2007
40+
41+
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
42+
Everyone is permitted to copy and distribute verbatim copies
43+
of this license document, but changing it is not allowed.
44+
45+
46+
This version of the GNU Lesser General Public License incorporates
47+
the terms and conditions of version 3 of the GNU General Public
48+
License, supplemented by the additional permissions listed below.
49+
50+
0. Additional Definitions.
51+
52+
As used herein, "this License" refers to version 3 of the GNU Lesser
53+
General Public License, and the "GNU GPL" refers to version 3 of the GNU
54+
General Public License.
55+
56+
"The Library" refers to a covered work governed by this License,
57+
other than an Application or a Combined Work as defined below.
58+
59+
An "Application" is any work that makes use of an interface provided
60+
by the Library, but which is not otherwise based on the Library.
61+
Defining a subclass of a class defined by the Library is deemed a mode
62+
of using an interface provided by the Library.
63+
64+
A "Combined Work" is a work produced by combining or linking an
65+
Application with the Library. The particular version of the Library
66+
with which the Combined Work was made is also called the "Linked
67+
Version".
68+
69+
The "Minimal Corresponding Source" for a Combined Work means the
70+
Corresponding Source for the Combined Work, excluding any source code
71+
for portions of the Combined Work that, considered in isolation, are
72+
based on the Application, and not on the Linked Version.
73+
74+
The "Corresponding Application Code" for a Combined Work means the
75+
object code and/or source code for the Application, including any data
76+
and utility programs needed for reproducing the Combined Work from the
77+
Application, but excluding the System Libraries of the Combined Work.
78+
79+
1. Exception to Section 3 of the GNU GPL.
80+
81+
You may convey a covered work under sections 3 and 4 of this License
82+
without being bound by section 3 of the GNU GPL.
83+
84+
2. Conveying Modified Versions.
85+
86+
If you modify a copy of the Library, and, in your modifications, a
87+
facility refers to a function or data to be supplied by an Application
88+
that uses the facility (other than as an argument passed when the
89+
facility is invoked), then you may convey a copy of the modified
90+
version:
91+
92+
a) under this License, provided that you make a good faith effort to
93+
ensure that, in the event an Application does not supply the
94+
function or data, the facility still operates, and performs
95+
whatever part of its purpose remains meaningful, or
96+
97+
b) under the GNU GPL, with none of the additional permissions of
98+
this License applicable to that copy.
99+
100+
3. Object Code Incorporating Material from Library Header Files.
101+
102+
The object code form of an Application may incorporate material from
103+
a header file that is part of the Library. You may convey such object
104+
code under terms of your choice, provided that, if the incorporated
105+
material is not limited to numerical parameters, data structure
106+
layouts and accessors, or small macros, inline functions and templates
107+
(ten or fewer lines in length), you do both of the following:
108+
109+
a) Give prominent notice with each copy of the object code that the
110+
Library is used in it and that the Library and its use are
111+
covered by this License.
112+
113+
b) Accompany the object code with a copy of the GNU GPL and this license
114+
document.
115+
116+
4. Combined Works.
117+
118+
You may convey a Combined Work under terms of your choice that,
119+
taken together, effectively do not restrict modification of the
120+
portions of the Library contained in the Combined Work and reverse
121+
engineering for debugging such modifications, if you also do each of
122+
the following:
123+
124+
a) Give prominent notice with each copy of the Combined Work that
125+
the Library is used in it and that the Library and its use are
126+
covered by this License.
127+
128+
b) Accompany the Combined Work with a copy of the GNU GPL and this license
129+
document.
130+
131+
c) For a Combined Work that displays copyright notices during
132+
execution, include the copyright notice for the Library among
133+
these notices, as well as a reference directing the user to the
134+
copies of the GNU GPL and this license document.
135+
136+
d) Do one of the following:
137+
138+
0) Convey the Minimal Corresponding Source under the terms of this
139+
License, and the Corresponding Application Code in a form
140+
suitable for, and under terms that permit, the user to
141+
recombine or relink the Application with a modified version of
142+
the Linked Version to produce a modified Combined Work, in the
143+
manner specified by section 6 of the GNU GPL for conveying
144+
Corresponding Source.
145+
146+
1) Use a suitable shared library mechanism for linking with the
147+
Library. A suitable mechanism is one that (a) uses at run time
148+
a copy of the Library already present on the user's computer
149+
system, and (b) will operate properly with a modified version
150+
of the Library that is interface-compatible with the Linked
151+
Version.
152+
153+
e) Provide Installation Information, but only if you would otherwise
154+
be required to provide such information under section 6 of the
155+
GNU GPL, and only to the extent that such information is
156+
necessary to install and execute a modified version of the
157+
Combined Work produced by recombining or relinking the
158+
Application with a modified version of the Linked Version. (If
159+
you use option 4d0, the Installation Information must accompany
160+
the Minimal Corresponding Source and Corresponding Application
161+
Code. If you use option 4d1, you must provide the Installation
162+
Information in the manner specified by section 6 of the GNU GPL
163+
for conveying Corresponding Source.)
164+
165+
5. Combined Libraries.
166+
167+
You may place library facilities that are a work based on the
168+
Library side by side in a single library together with other library
169+
facilities that are not Applications and are not covered by this
170+
License, and convey such a combined library under terms of your
171+
choice, if you do both of the following:
172+
173+
a) Accompany the combined library with a copy of the same work based
174+
on the Library, uncombined with any other library facilities,
175+
conveyed under the terms of this License.
176+
177+
b) Give prominent notice with the combined library that part of it
178+
is a work based on the Library, and explaining where to find the
179+
accompanying uncombined form of the same work.
180+
181+
6. Revised Versions of the GNU Lesser General Public License.
182+
183+
The Free Software Foundation may publish revised and/or new versions
184+
of the GNU Lesser General Public License from time to time. Such new
185+
versions will be similar in spirit to the present version, but may
186+
differ in detail to address new problems or concerns.
187+
188+
Each version is given a distinguishing version number. If the
189+
Library as you received it specifies that a certain numbered version
190+
of the GNU Lesser General Public License "or any later version"
191+
applies to it, you have the option of following the terms and
192+
conditions either of that published version or of any later version
193+
published by the Free Software Foundation. If the Library as you
194+
received it does not specify a version number of the GNU Lesser
195+
General Public License, you may choose any version of the GNU Lesser
196+
General Public License ever published by the Free Software Foundation.
197+
198+
If the Library as you received it specifies that a proxy can decide
199+
whether future versions of the GNU Lesser General Public License shall
200+
apply, that proxy's public statement of acceptance of any version is
201+
permanent authorization for you to choose that version for the
202+
Library.
203+
```
204+
205+
#### [PMD-Intellij](https://github.com/amitdev/PMD-Intellij)
206+
207+
```
208+
The MIT License (MIT)
209+
210+
Copyright (c) Amit Dev
211+
212+
Permission is hereby granted, free of charge, to any person obtaining a copy
213+
of this software and associated documentation files (the "Software"), to deal
214+
in the Software without restriction, including without limitation the rights
215+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
216+
copies of the Software, and to permit persons to whom the Software is
217+
furnished to do so, subject to the following conditions:
218+
219+
The above copyright notice and this permission notice shall be included in all
220+
copies or substantial portions of the Software.
221+
222+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
223+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
224+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
225+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
226+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
227+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
228+
SOFTWARE.
229+
```

0 commit comments

Comments
 (0)