You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by tm...@apache.org on 2020/07/04 07:02:10 UTC
[netbeans] branch master updated: [NETBEANS-4541] Set working
directory when running PHP CS Fixer
This is an automated email from the ASF dual-hosted git repository.
tmysik pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans.git
The following commit(s) were added to refs/heads/master by this push:
new 7d9cdb4 [NETBEANS-4541] Set working directory when running PHP CS Fixer
new 2e52d0b Merge pull request #2230 from KacerCZ/netbeans-4541-php-cs-fixer-workdir
7d9cdb4 is described below
commit 7d9cdb4ed7e0ac2ffe740a0be354bad3385d65e4
Author: Tomas Prochazka <ka...@razdva.cz>
AuthorDate: Sat Jul 4 00:21:37 2020 +0200
[NETBEANS-4541] Set working directory when running PHP CS Fixer
https://issues.apache.org/jira/browse/NETBEANS-4541
Set working directory when PHP CS Fixer is run.
Project configuration file is now found.
Output before: Loaded config default.
Output after: Loaded config default from
"C:\Devel\Project\.php_cs.dist".
---
.../analysis/commands/CodingStandardsFixer.java | 40 ++++++++++++++++++++--
1 file changed, 37 insertions(+), 3 deletions(-)
diff --git a/php/php.code.analysis/src/org/netbeans/modules/php/analysis/commands/CodingStandardsFixer.java b/php/php.code.analysis/src/org/netbeans/modules/php/analysis/commands/CodingStandardsFixer.java
index 5dabdb7..62ba3ef 100644
--- a/php/php.code.analysis/src/org/netbeans/modules/php/analysis/commands/CodingStandardsFixer.java
+++ b/php/php.code.analysis/src/org/netbeans/modules/php/analysis/commands/CodingStandardsFixer.java
@@ -29,7 +29,10 @@ import java.util.concurrent.Future;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.netbeans.api.annotations.common.CheckForNull;
+import org.netbeans.api.annotations.common.NullAllowed;
import org.netbeans.api.extexecution.ExecutionDescriptor;
+import org.netbeans.api.project.FileOwnerQuery;
+import org.netbeans.api.project.Project;
import org.netbeans.modules.php.analysis.CodingStandardsFixerParams;
import org.netbeans.modules.php.analysis.options.AnalysisOptions;
import org.netbeans.modules.php.analysis.parsers.CodingStandardsFixerReportParser;
@@ -169,7 +172,8 @@ public final class CodingStandardsFixer {
public List<Result> analyze(CodingStandardsFixerParams params, FileObject file) {
assert file.isValid() : "Invalid file given: " + file;
try {
- Integer result = getExecutable(Bundle.CodingStandardsFixer_analyze(analyzeGroupCounter++))
+
+ Integer result = getExecutable(Bundle.CodingStandardsFixer_analyze(analyzeGroupCounter++), findWorkDir(file))
.additionalParameters(getParameters(params, file))
.runAndWait(getDescriptor(), "Running coding standards fixer..."); // NOI18N
if (result == null) {
@@ -187,18 +191,48 @@ public final class CodingStandardsFixer {
return null;
}
+ /**
+ * Finds project directory for the given file since it can contain
+ * {@code .php_cs}, {@code .php_cs.dist}.
+ *
+ * @param file file to find project directory for
+ * @return project directory or {@code null}
+ */
+ @CheckForNull
+ private File findWorkDir(FileObject file) {
+ assert file != null;
+ Project project = FileOwnerQuery.getOwner(file);
+ File workDir = null;
+ if (project != null) {
+ workDir = FileUtil.toFile(project.getProjectDirectory());
+ if (LOGGER.isLoggable(Level.FINE)) {
+ if (workDir != null) {
+ LOGGER.log(Level.FINE, "Project directory for {0} is found in {1}", new Object[]{FileUtil.toFile(file), workDir}); // NOI18N
+ } else {
+ // the file/directory may not be in a PHP project
+ LOGGER.log(Level.FINE, "Project directory for {0} is not found", FileUtil.toFile(file)); // NOI18N
+ }
+ }
+ }
+ return workDir;
+ }
+
private PhpExecutable getExecutable(PhpModule phpModule, String title) {
return new PhpExecutable(codingStandardsFixerPath)
.optionsSubcategory(AnalysisOptionsPanelController.OPTIONS_SUB_PATH)
.displayName(title);
}
- private PhpExecutable getExecutable(String title) {
- return new PhpExecutable(codingStandardsFixerPath)
+ private PhpExecutable getExecutable(String title, @NullAllowed File workDir) {
+ PhpExecutable executable = new PhpExecutable(codingStandardsFixerPath)
.optionsSubcategory(AnalysisOptionsPanelController.OPTIONS_SUB_PATH)
.fileOutput(XML_LOG, "UTF-8", false) // NOI18N
.redirectErrorStream(false)
.displayName(title);
+ if (workDir != null) {
+ executable.workDir(workDir);
+ }
+ return executable;
}
private ExecutionDescriptor getDescriptor(PhpModule phpModule) {
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists