- configured the new marker ids as extensions, so they are visible in the UI. - recursively removed all marker in the projects with invalid classpath, and fixed the test. (cherry-picked commit 7ab0683)
…ild, compiler settings, and class path validation errors. 1. The class path validator deletes all Java and Scala error markers *only* when there is an class path error. 2. Build errors, settings errors and class path errors have different marker IDs. 3. Invalid setting errors are now reported. Until now they went unreported. 4. Fixed #1000757.(cherry picked from commit 55ae84c) (cherry picked from commit e28c174)
…ith Utils.tryExecute. I believe the latter better describes the method's intention. (cherry picked from commit 4a1c311)
… library jars of compatible version. Extended tests for the new cases.
…r for this purpose, even when there are no modified Java files. Fixed #1000636.
… change. - A project resets the presentation compiler of all projects that depend on it after a successful build. - A project resets its own presentation compiler when one of the projects it depends on has changes (such as a class path change) - A class path change, or an added source file, restarts the PC Fixed #1000699. Test #1000645.
Added check so markers are modified in the project is closed.
…ist in the workspace. See mailing list discussion https://groups.google.com/d/msg/scala-ide-user/_uDaY-210GU/gh5ilB24eFMJ
…th is invalid. The reset in this case is useless, generates log and was making the tests fail on trully headless systems.
…tion compiler was not yet initialized. This avoids waking up the compiler just to tell it to shutdown, and also eliminates a source of deadlocks or recursive initializations (for instance, if reset is called while initializing the presentation compiler). Fixed #1000704.
- Added a asScalaProject() method to ScalaPlugin, to return only 'valid' scala projects - Fix case when more than one project classpath is changed at once (+ test)
A Job is more Eclipse-like, avoids creation of a new thread and manages lock on resources. Added comment as recommanded
…BuilderTest@dependencyTest. Added validator methods to ScalaProject. Added link for Java Model listener to validator when classpath is modified in ScalaPlugin. Added check if project classpath is valid in ScalaBuilder. Added set of tests for different configuration of the classpath.
Reworked allSourceFiles() and sourceOutputFolders() to use the new method. This does not lock the workspace, nor creates output folders as a side-effect, leading to one less deadlock. Fixed #1000662.
… output directories. Additionally, cleaned up some duplicated code between 'outputFolders' and 'sourceOutputFolders'. This changeset introduces a slight behavioral change, in that output directories are not created if they don't exist. This does not seem to pose any problems. Creating such folders locks the workspace, and if this happens during a build, it may lead to deadlocks. Fixed #1000662.
Indexing, override indicators and the structure builder are going to report a crash in the compiler only once, then silently ignore it until the file is re-open. Certain exceptions, such as StackOverflowError, are reported by Eclipse in a dialog, and that can make editing impossible if the presentation compiler keeps crashing (because of a bug, of course). Disabled indexing and override indicators for Scala files in projects without the Scala nature (because that means there's no Scala library on the class path). Fixed #1000535 *again*.
To be able to handle files which are not part of the workspace (like a previous version from source control), Eclipse uses a non-existing project. This one has to be handle correctly.
… commit I have replaced all calls to println with logger.debug or logger.info. This is much cleaner, IMO. There were mainly two reasons for refacting and unify the logger: 1) Testing. It was previously impossible to mock the logger, which is a problem because I couldn't create a functional test for Re #1000531. 2) Eventually we want to use Log4J (or similar) as a back-end logger (which ideally could be easily configured by customers). This is something we yet didn't explore and it will likely be tackled after releasing 2.0.
- don't reset compilers during presentation compiler initialization (may lead to another attempt to initialize the same presentation compiler, leading to deadlocks in Cached) - reconcile calls are done after the presentation compiler is reset, passing again the existing compilation units. Most importantly, this is not scheduled on the UI thread. This allows calls to 'builder.clean' in non-UI environments (think tests and Jenkins).
…til to 'properties', to be together with the other Scala compiler settings.
…ox (with completion) for additional command line arguments (since they vary across compiler versions). Fixed #1000547. Fixed #1000529.
…les uses straight java batch compiler, we will use eclipse's java builder (similarly to what we were doing in the past) and then run sbt's classfile analyzer to pick up dependencies correctly. sbt's sources were updated accordingly to allow for multiple output directories.
…choosing it in the Scala -> Build Manager -> sbt. Have fun! Error reporting in mixed Scala/Java projects for Java files needs more work (eg getting location from stdout java compiler error messages) but other than that multi- and mixed-project integration works fine.
…sure, and switched to using it in all the 5 places where anonymous classes were created for it.
…ter transcript when project is successfully rebuilt.
…gs now, including compiler plugins. Fixed #1000367.