Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Exception while display C/C++ symbols in Project Explorer #360

Closed
ghentschke opened this issue Jul 26, 2024 · 0 comments · Fixed by #361
Closed

Exception while display C/C++ symbols in Project Explorer #360

ghentschke opened this issue Jul 26, 2024 · 0 comments · Fixed by #361
Assignees

Comments

@ghentschke
Copy link
Contributor

When a user wants to display the symbols of a C/C++ header or source file in the Project Explorer by clicking on the expand icon:
image
the icon vanishes:
image
and no children (symbols of the file) will be displayed.
Reason is this exception:

!ENTRY org.eclipse.lsp4e 4 0 2024-07-26 14:09:22.006
!MESSAGE Error occured during evaluation of enablement expression
!STACK 1
org.eclipse.core.runtime.CoreException: Error evaluating Property [org.eclipse.cdt.lsp.server.enable.hasLanguageServer, type=class java.net.URI, tester=org.eclipse.cdt.lsp.internal.server.HasLanguageServerPropertyTester@50017595]
	at org.eclipse.core.internal.expressions.Property.test(Property.java:68)
	at org.eclipse.core.expressions.TestExpression.evaluate(TestExpression.java:107)
	at org.eclipse.core.expressions.CompositeExpression.evaluateAnd(CompositeExpression.java:54)
	at org.eclipse.core.expressions.WithExpression.evaluate(WithExpression.java:84)
	at org.eclipse.core.expressions.ReferenceExpression.evaluate(ReferenceExpression.java:72)
	at org.eclipse.lsp4e.enablement.EnablementTester.evaluate(EnablementTester.java:90)
	at org.eclipse.lsp4e.ContentTypeToLanguageServerDefinition.isExtensionEnabled(ContentTypeToLanguageServerDefinition.java:52)
	at org.eclipse.lsp4e.ContentTypeToLanguageServerDefinition.isEnabled(ContentTypeToLanguageServerDefinition.java:37)
	at org.eclipse.lsp4e.LanguageServiceAccessor.getLSWrappers(LanguageServiceAccessor.java:303)
	at org.eclipse.lsp4e.LanguageServers$LanguageServerDocumentExecutor.getServers(LanguageServers.java:296)
	at org.eclipse.lsp4e.LanguageServers.executeOnServers(LanguageServers.java:437)
	at org.eclipse.lsp4e.LanguageServers.computeFirst(LanguageServers.java:172)
	at org.eclipse.cdt.lsp.internal.ui.navigator.SymbolsManager.refreshTreeContentFromLS(SymbolsManager.java:247)
	at org.eclipse.cdt.lsp.internal.ui.navigator.SymbolsManager.getCompileUnitElements(SymbolsManager.java:223)
	at org.eclipse.cdt.lsp.internal.ui.navigator.SymbolsManager.fetchDeferredChildren(SymbolsManager.java:129)
	at org.eclipse.ui.progress.DeferredTreeContentManager$1.run(DeferredTreeContentManager.java:215)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Caused by: java.lang.IllegalArgumentException: Attempted to beginRule: P/MyCmake, does not match outer scope rule: L/MyCmake/MyCmake.cpp
	at org.eclipse.core.runtime.Assert.isLegal(Assert.java:68)
	at org.eclipse.core.internal.jobs.ThreadJob.illegalPush(ThreadJob.java:144)
	at org.eclipse.core.internal.jobs.ThreadJob.push(ThreadJob.java:416)
	at org.eclipse.core.internal.jobs.ImplicitJobs.begin(ImplicitJobs.java:88)
	at org.eclipse.core.internal.jobs.JobManager.beginRule(JobManager.java:343)
	at org.eclipse.core.internal.resources.WorkManager.checkIn(WorkManager.java:124)
	at org.eclipse.core.internal.resources.Workspace.prepareOperation(Workspace.java:2401)
	at org.eclipse.core.internal.resources.File.create(File.java:129)
	at org.eclipse.core.internal.resources.File.create(File.java:203)
	at org.eclipse.cdt.lsp.clangd.utils.ClangFormatUtils.createFileFromResource(ClangFormatUtils.java:57)
	at org.eclipse.cdt.lsp.clangd.utils.ClangFormatUtils.createClangFormatFile(ClangFormatUtils.java:48)
	at org.eclipse.cdt.lsp.clangd.internal.config.ClangdLanguageServerProvider.preFileOpening(ClangdLanguageServerProvider.java:78)
	at org.eclipse.cdt.lsp.internal.server.HasLanguageServerPropertyTester.preFileOpening(HasLanguageServerPropertyTester.java:99)
	at org.eclipse.cdt.lsp.internal.server.HasLanguageServerPropertyTester.test(HasLanguageServerPropertyTester.java:62)
	at org.eclipse.core.internal.expressions.Property.test(Property.java:65)
	... 16 more
!SUBENTRY 1 org.eclipse.core.expressions 4 0 2024-07-26 14:09:22.006
!MESSAGE Error evaluating Property [org.eclipse.cdt.lsp.server.enable.hasLanguageServer, type=class java.net.URI, tester=org.eclipse.cdt.lsp.internal.server.HasLanguageServerPropertyTester@50017595]
!STACK 0
java.lang.IllegalArgumentException: Attempted to beginRule: P/MyCmake, does not match outer scope rule: L/MyCmake/MyCmake.cpp
	at org.eclipse.core.runtime.Assert.isLegal(Assert.java:68)
	at org.eclipse.core.internal.jobs.ThreadJob.illegalPush(ThreadJob.java:144)
	at org.eclipse.core.internal.jobs.ThreadJob.push(ThreadJob.java:416)
	at org.eclipse.core.internal.jobs.ImplicitJobs.begin(ImplicitJobs.java:88)
	at org.eclipse.core.internal.jobs.JobManager.beginRule(JobManager.java:343)
	at org.eclipse.core.internal.resources.WorkManager.checkIn(WorkManager.java:124)
	at org.eclipse.core.internal.resources.Workspace.prepareOperation(Workspace.java:2401)
	at org.eclipse.core.internal.resources.File.create(File.java:129)
	at org.eclipse.core.internal.resources.File.create(File.java:203)
	at org.eclipse.cdt.lsp.clangd.utils.ClangFormatUtils.createFileFromResource(ClangFormatUtils.java:57)
	at org.eclipse.cdt.lsp.clangd.utils.ClangFormatUtils.createClangFormatFile(ClangFormatUtils.java:48)
	at org.eclipse.cdt.lsp.clangd.internal.config.ClangdLanguageServerProvider.preFileOpening(ClangdLanguageServerProvider.java:78)
	at org.eclipse.cdt.lsp.internal.server.HasLanguageServerPropertyTester.preFileOpening(HasLanguageServerPropertyTester.java:99)
	at org.eclipse.cdt.lsp.internal.server.HasLanguageServerPropertyTester.test(HasLanguageServerPropertyTester.java:62)
	at org.eclipse.core.internal.expressions.Property.test(Property.java:65)
	at org.eclipse.core.expressions.TestExpression.evaluate(TestExpression.java:107)
	at org.eclipse.core.expressions.CompositeExpression.evaluateAnd(CompositeExpression.java:54)
	at org.eclipse.core.expressions.WithExpression.evaluate(WithExpression.java:84)
	at org.eclipse.core.expressions.ReferenceExpression.evaluate(ReferenceExpression.java:72)
	at org.eclipse.lsp4e.enablement.EnablementTester.evaluate(EnablementTester.java:90)
	at org.eclipse.lsp4e.ContentTypeToLanguageServerDefinition.isExtensionEnabled(ContentTypeToLanguageServerDefinition.java:52)
	at org.eclipse.lsp4e.ContentTypeToLanguageServerDefinition.isEnabled(ContentTypeToLanguageServerDefinition.java:37)
	at org.eclipse.lsp4e.LanguageServiceAccessor.getLSWrappers(LanguageServiceAccessor.java:303)
	at org.eclipse.lsp4e.LanguageServers$LanguageServerDocumentExecutor.getServers(LanguageServers.java:296)
	at org.eclipse.lsp4e.LanguageServers.executeOnServers(LanguageServers.java:437)
	at org.eclipse.lsp4e.LanguageServers.computeFirst(LanguageServers.java:172)
	at org.eclipse.cdt.lsp.internal.ui.navigator.SymbolsManager.refreshTreeContentFromLS(SymbolsManager.java:247)
	at org.eclipse.cdt.lsp.internal.ui.navigator.SymbolsManager.getCompileUnitElements(SymbolsManager.java:223)
	at org.eclipse.cdt.lsp.internal.ui.navigator.SymbolsManager.fetchDeferredChildren(SymbolsManager.java:129)
	at org.eclipse.ui.progress.DeferredTreeContentManager$1.run(DeferredTreeContentManager.java:215)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)

Steps to reproduce:

  1. Create a C/C++ project with no .clang-format file in the project root folder.
  2. Ensure that the project contains a C/C++ source file.
  3. Ensure that no C/C++ file is opened in the new LSP based editor.
  4. Enable the LSP Editor for this project
  5. Try to Expand the children of the C/C++ project as described above
@ghentschke ghentschke self-assigned this Jul 26, 2024
ghentschke added a commit to ghentschke/eclipse-cdt-lsp that referenced this issue Jul 26, 2024
to prevent  conflicting scheduling rules while accessing a resource.

fixes eclipse-cdt#360
ghentschke added a commit that referenced this issue Jul 26, 2024
to prevent  conflicting scheduling rules while accessing a resource.

fixes #360
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant