diff --git a/plugin/raven.sqdev.editors.sqfeditor/.classpath b/plugin/Raven.SQDev.Editors/.classpath similarity index 100% rename from plugin/raven.sqdev.editors.sqfeditor/.classpath rename to plugin/Raven.SQDev.Editors/.classpath diff --git a/plugin/raven.sqdev.editors/.project b/plugin/Raven.SQDev.Editors/.project similarity index 100% rename from plugin/raven.sqdev.editors/.project rename to plugin/Raven.SQDev.Editors/.project diff --git a/plugin/raven.sqdev.editors.sqfeditor/.settings/org.eclipse.jdt.core.prefs b/plugin/Raven.SQDev.Editors/.settings/org.eclipse.jdt.core.prefs similarity index 100% rename from plugin/raven.sqdev.editors.sqfeditor/.settings/org.eclipse.jdt.core.prefs rename to plugin/Raven.SQDev.Editors/.settings/org.eclipse.jdt.core.prefs diff --git a/plugin/raven.sqdev.editors/META-INF/MANIFEST.MF b/plugin/Raven.SQDev.Editors/META-INF/MANIFEST.MF similarity index 83% rename from plugin/raven.sqdev.editors/META-INF/MANIFEST.MF rename to plugin/Raven.SQDev.Editors/META-INF/MANIFEST.MF index 503d5512..90697139 100644 --- a/plugin/raven.sqdev.editors/META-INF/MANIFEST.MF +++ b/plugin/Raven.SQDev.Editors/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: Editors Bundle-SymbolicName: raven.sqdev.editors;singleton:=true -Bundle-Version: 0.7.0 +Bundle-Version: 0.7.1.stable Bundle-Activator: raven.sqdev.editors.activator.Activator Require-Bundle: org.eclipse.ui, org.eclipse.core.runtime, @@ -11,7 +11,8 @@ Require-Bundle: org.eclipse.ui, org.eclipse.swt, org.eclipse.core.resources, org.eclipse.ui.ide, - org.eclipse.core.filesystem;bundle-version="1.4.100" + org.eclipse.core.filesystem;bundle-version="1.4.100", + raven.sqdev.misc;bundle-version="0.6.0" Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Bundle-ActivationPolicy: lazy Export-Package: raven.sqdev.editors; @@ -33,16 +34,10 @@ Export-Package: raven.sqdev.editors; raven.sqdev.interfaces, org.eclipse.jface.text.rules" Bundle-Vendor: Raven -Import-Package: org.antlr.v4.runtime, - org.antlr.v4.runtime.atn, - org.antlr.v4.runtime.dfa, - org.antlr.v4.runtime.misc, - org.antlr.v4.runtime.tree, - raven.sqdev.constants, +Import-Package: raven.sqdev.constants, raven.sqdev.exceptions, raven.sqdev.infoCollection.base, raven.sqdev.interfaces, - raven.sqdev.misc, raven.sqdev.miscellaneous, raven.sqdev.parser.misc, raven.sqdev.parser.preprocessor, diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicCodeEditor$1.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicCodeEditor$1.class similarity index 88% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicCodeEditor$1.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicCodeEditor$1.class index 6d556eac..02760f60 100644 Binary files a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicCodeEditor$1.class and b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicCodeEditor$1.class differ diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicCodeEditor$2.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicCodeEditor$2.class similarity index 89% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicCodeEditor$2.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicCodeEditor$2.class index 5d2a95d0..e4aa427d 100644 Binary files a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicCodeEditor$2.class and b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicCodeEditor$2.class differ diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicCodeEditor$3.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicCodeEditor$3.class similarity index 87% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicCodeEditor$3.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicCodeEditor$3.class index 63002a0e..91287570 100644 Binary files a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicCodeEditor$3.class and b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicCodeEditor$3.class differ diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicCodeEditor.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicCodeEditor.class similarity index 54% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicCodeEditor.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicCodeEditor.class index 8e7b48be..c32a243d 100644 Binary files a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicCodeEditor.class and b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicCodeEditor.class differ diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicCompletionProposal$1.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicCompletionProposal$1.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicCompletionProposal$1.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicCompletionProposal$1.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicCompletionProposal$2.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicCompletionProposal$2.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicCompletionProposal$2.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicCompletionProposal$2.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicCompletionProposal.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicCompletionProposal.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicCompletionProposal.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicCompletionProposal.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicContentAssistProcessor.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicContentAssistProcessor.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicContentAssistProcessor.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicContentAssistProcessor.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicDocumentProvider.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicDocumentProvider.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicDocumentProvider.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicDocumentProvider.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicFoldingManager.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicFoldingManager.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicFoldingManager.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicFoldingManager.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicInformationControl$1.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicInformationControl$1.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicInformationControl$1.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicInformationControl$1.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicInformationControl$2.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicInformationControl$2.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicInformationControl$2.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicInformationControl$2.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicInformationControl$InfoComposite.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicInformationControl$InfoComposite.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicInformationControl$InfoComposite.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicInformationControl$InfoComposite.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicInformationControl.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicInformationControl.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicInformationControl.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicInformationControl.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicKeywordProvider.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicKeywordProvider.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicKeywordProvider.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicKeywordProvider.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicMarkerManager.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicMarkerManager.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicMarkerManager.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicMarkerManager.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicParseTimeListener$1.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicParseTimeListener$1.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicParseTimeListener$1.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicParseTimeListener$1.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicParseTimeListener.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicParseTimeListener.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicParseTimeListener.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicParseTimeListener.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicPartitionScanner.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicPartitionScanner.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicPartitionScanner.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicPartitionScanner.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicSourceViewerConfiguration.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicSourceViewerConfiguration.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicSourceViewerConfiguration.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicSourceViewerConfiguration.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicTextHover$1.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicTextHover$1.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicTextHover$1.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicTextHover$1.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicTextHover.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicTextHover.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/BasicTextHover.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/BasicTextHover.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/CharacterPair.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/CharacterPair.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/CharacterPair.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/CharacterPair.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/CharacterPairHandler$1.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/CharacterPairHandler$1.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/CharacterPairHandler$1.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/CharacterPairHandler$1.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/CharacterPairHandler.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/CharacterPairHandler.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/CharacterPairHandler.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/CharacterPairHandler.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/ColorManager.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/ColorManager.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/ColorManager.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/ColorManager.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/EditorKeyEventManager.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/EditorKeyEventManager.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/EditorKeyEventManager.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/EditorKeyEventManager.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/EditorKeyEventQueue.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/EditorKeyEventQueue.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/EditorKeyEventQueue.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/EditorKeyEventQueue.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/KeywordScanner.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/KeywordScanner.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/KeywordScanner.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/KeywordScanner.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/MarkerInformation.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/MarkerInformation.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/MarkerInformation.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/MarkerInformation.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/MultiKeywordScanner$1.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/MultiKeywordScanner$1.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/MultiKeywordScanner$1.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/MultiKeywordScanner$1.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/MultiKeywordScanner.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/MultiKeywordScanner.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/MultiKeywordScanner.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/MultiKeywordScanner.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/NonRuleBasedDamagerRepairer.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/NonRuleBasedDamagerRepairer.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/NonRuleBasedDamagerRepairer.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/NonRuleBasedDamagerRepairer.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/WordDetector.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/WordDetector.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/WordDetector.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/WordDetector.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/activator/Activator.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/activator/Activator.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/activator/Activator.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/activator/Activator.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/exceptions/IllegalConstructorException.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/exceptions/IllegalConstructorException.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/exceptions/IllegalConstructorException.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/exceptions/IllegalConstructorException.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/exceptions/IllegalModificationException.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/exceptions/IllegalModificationException.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/exceptions/IllegalModificationException.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/exceptions/IllegalModificationException.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/exceptions/SQDevEditorException.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/exceptions/SQDevEditorException.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/exceptions/SQDevEditorException.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/exceptions/SQDevEditorException.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/other/ConfigEditor.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/other/ConfigEditor.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/other/ConfigEditor.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/other/ConfigEditor.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/sqdevEditor/SQDevFileEditor.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/sqdevEditor/SQDevFileEditor.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/sqdevEditor/SQDevFileEditor.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/sqdevEditor/SQDevFileEditor.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/Language$1.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/Language$1.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/Language$1.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/Language$1.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/Language.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/Language.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/Language.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/Language.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableCellEditingSupport$1.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableCellEditingSupport$1.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableCellEditingSupport$1.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableCellEditingSupport$1.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableCellEditingSupport$2.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableCellEditingSupport$2.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableCellEditingSupport$2.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableCellEditingSupport$2.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableCellEditingSupport.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableCellEditingSupport.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableCellEditingSupport.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableCellEditingSupport.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableCellLabelProvider.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableCellLabelProvider.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableCellLabelProvider.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableCellLabelProvider.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableContainer.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableContainer.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableContainer.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableContainer.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableContentProvider.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableContentProvider.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableContentProvider.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableContentProvider.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$1.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$1.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$1.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$1.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$10.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$10.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$10.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$10.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$11.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$11.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$11.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$11.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$12$1.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$12$1.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$12$1.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$12$1.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$12.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$12.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$12.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$12.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$13.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$13.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$13.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$13.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$14.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$14.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$14.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$14.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$15.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$15.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$15.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$15.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$16.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$16.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$16.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$16.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$17.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$17.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$17.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$17.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$18.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$18.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$18.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$18.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$2.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$2.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$2.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$2.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$3$1.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$3$1.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$3$1.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$3$1.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$3$2.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$3$2.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$3$2.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$3$2.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$3.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$3.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$3.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$3.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$4.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$4.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$4.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$4.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$5.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$5.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$5.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$5.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$6.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$6.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$6.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$6.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$7.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$7.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$7.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$7.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$8.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$8.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$8.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$8.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$9.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$9.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$9.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor$9.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableEditor.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableKey.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableKey.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableKey.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableKey.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTablePackage.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTablePackage.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTablePackage.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTablePackage.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableSourceViewerConfiguration.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableSourceViewerConfiguration.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableSourceViewerConfiguration.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableSourceViewerConfiguration.class diff --git a/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableXMLEditor.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableXMLEditor.class new file mode 100644 index 00000000..36867fbb Binary files /dev/null and b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringTableEditor/StringTableXMLEditor.class differ diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTable.tokens b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTable.tokens similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTable.tokens rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTable.tokens diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableBaseListener.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableBaseListener.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableBaseListener.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableBaseListener.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableBaseVisitor.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableBaseVisitor.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableBaseVisitor.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableBaseVisitor.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableLexer.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableLexer.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableLexer.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableLexer.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableLexer.tokens b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableLexer.tokens similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableLexer.tokens rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableLexer.tokens diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableListener.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableListener.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableListener.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableListener.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$ContainerContext.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$ContainerContext.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$ContainerContext.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$ContainerContext.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$ContainerEndTagContext.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$ContainerEndTagContext.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$ContainerEndTagContext.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$ContainerEndTagContext.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$ContainerStartTagContext.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$ContainerStartTagContext.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$ContainerStartTagContext.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$ContainerStartTagContext.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$ContentContext.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$ContentContext.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$ContentContext.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$ContentContext.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$KeyCloseTagContext.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$KeyCloseTagContext.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$KeyCloseTagContext.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$KeyCloseTagContext.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$KeyContext.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$KeyContext.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$KeyContext.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$KeyContext.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$KeyStartTagContext.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$KeyStartTagContext.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$KeyStartTagContext.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$KeyStartTagContext.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$LanguageCloseTagContext.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$LanguageCloseTagContext.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$LanguageCloseTagContext.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$LanguageCloseTagContext.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$LanguageContext.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$LanguageContext.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$LanguageContext.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$LanguageContext.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$LanguageOpenTagContext.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$LanguageOpenTagContext.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$LanguageOpenTagContext.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$LanguageOpenTagContext.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$PackageEndTagContext.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$PackageEndTagContext.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$PackageEndTagContext.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$PackageEndTagContext.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$PackageStartTagContext.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$PackageStartTagContext.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$PackageStartTagContext.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$PackageStartTagContext.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$PkgContext.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$PkgContext.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$PkgContext.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$PkgContext.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$ProjectContext.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$ProjectContext.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$ProjectContext.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$ProjectContext.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$ProjectEndTagContext.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$ProjectEndTagContext.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$ProjectEndTagContext.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$ProjectEndTagContext.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$ProjectStartTagContext.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$ProjectStartTagContext.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$ProjectStartTagContext.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser$ProjectStartTagContext.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableParser.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableVisitor.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableVisitor.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableVisitor.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableVisitor.class diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableWalkListener.class b/plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableWalkListener.class similarity index 100% rename from plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringtableParsing/StringTableWalkListener.class rename to plugin/Raven.SQDev.Editors/bin/raven/sqdev/editors/stringtableParsing/StringTableWalkListener.class diff --git a/plugin/raven.sqdev.editors.sqfeditor/build.properties b/plugin/Raven.SQDev.Editors/build.properties similarity index 100% rename from plugin/raven.sqdev.editors.sqfeditor/build.properties rename to plugin/Raven.SQDev.Editors/build.properties diff --git a/plugin/raven.sqdev.editors/plugin.xml b/plugin/Raven.SQDev.Editors/plugin.xml similarity index 100% rename from plugin/raven.sqdev.editors/plugin.xml rename to plugin/Raven.SQDev.Editors/plugin.xml diff --git a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/BasicCodeEditor.java b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/BasicCodeEditor.java similarity index 75% rename from plugin/raven.sqdev.editors/src/raven/sqdev/editors/BasicCodeEditor.java rename to plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/BasicCodeEditor.java index e8f98c1e..126b3199 100644 --- a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/BasicCodeEditor.java +++ b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/BasicCodeEditor.java @@ -4,10 +4,7 @@ import java.util.ArrayList; import java.util.List; -import org.antlr.v4.runtime.ANTLRInputStream; -import org.antlr.v4.runtime.CommonTokenStream; import org.antlr.v4.runtime.tree.ParseTree; -import org.antlr.v4.runtime.tree.ParseTreeWalker; import org.eclipse.core.resources.IMarker; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; @@ -44,11 +41,8 @@ import raven.sqdev.misc.MultiPreferenceStore; import raven.sqdev.misc.SQDevInfobox; import raven.sqdev.misc.SQDevPreferenceUtil; -import raven.sqdev.parser.preprocessor.PreprocessorErrorListener; -import raven.sqdev.parser.preprocessor.PreprocessorLexer; -import raven.sqdev.parser.preprocessor.PreprocessorParseListener; +import raven.sqdev.parser.misc.ParseUtil; import raven.sqdev.parser.preprocessor.PreprocessorParseResult; -import raven.sqdev.parser.preprocessor.PreprocessorParser; /*** * A default implementation of a code editor. This contains the autoCompletion @@ -69,22 +63,22 @@ * */ public class BasicCodeEditor extends TextEditor implements IMarkerSupport { - + /** * The color manager */ protected ColorManager colorManager; - + /** * The queue for the keyEvents */ protected EditorKeyEventQueue editorKeyEventQueue; - + /** * The source viewer configuration for this editor */ protected BasicSourceViewerConfiguration configuration; - + /** * The parse tree representing the input of this editor */ @@ -93,7 +87,7 @@ public class BasicCodeEditor extends TextEditor implements IMarkerSupport { * The name of the rules used for parsing this editor's input */ protected List parseRuleNames; - + /** * The document provider of this editor */ @@ -114,86 +108,84 @@ public class BasicCodeEditor extends TextEditor implements IMarkerSupport { * Indicates whether the current parsing should be cancelled */ private Boolean parsingIsCancelled; - + public BasicCodeEditor() { super(); - + setColorManager(new ColorManager()); setEditorKeyEventQueue(new EditorKeyEventQueue()); - + this.setSourceViewerConfiguration(getBasicConfiguration()); this.setDocumentProvider(getBasicProvider()); - + managerList = new ArrayList(); characterPairs = getCharacterPairs(); parsingIsCancelled = false; - + // set up key handlers configureKeyHandler(); } - + @Override public void dispose() { this.getColorManager().dispose(); super.dispose(); } - + public ColorManager getColorManager() { return colorManager; } - + public void setColorManager(ColorManager colorManager) { this.colorManager = colorManager; } - + @Override - public ISourceViewer createSourceViewer(Composite parent, - IVerticalRuler ruler, int styles) { - ISourceViewer viewer = new ProjectionViewer(parent, ruler, - getOverviewRuler(), isOverviewRulerVisible(), styles); - + public ISourceViewer createSourceViewer(Composite parent, IVerticalRuler ruler, int styles) { + ISourceViewer viewer = new ProjectionViewer(parent, ruler, getOverviewRuler(), + isOverviewRulerVisible(), styles); + getSourceViewerDecorationSupport(viewer); - + if (viewer instanceof ITextViewerExtension) { EditorKeyEventManager manager = new EditorKeyEventManager(); - + // associate the newly created manager with the EditorKeyEventQueue // of this editor getEditorKeyEventQueue().setManager(manager); - + ((ITextViewerExtension) viewer).appendVerifyKeyListener(manager); } - + // add parse listener getBasicProvider().getDocument(getEditorInput()) .addDocumentListener(new BasicParseTimeListener(this)); - + return viewer; } - + @Override - protected void configureSourceViewerDecorationSupport( - SourceViewerDecorationSupport support) { + protected void configureSourceViewerDecorationSupport(SourceViewerDecorationSupport support) { super.configureSourceViewerDecorationSupport(support); - + char[] matchChars = { '(', ')', '[', ']', '{', '}' }; // which brackets // to match - ICharacterPairMatcher matcher = new DefaultCharacterPairMatcher( - matchChars, IDocumentExtension3.DEFAULT_PARTITIONING, true); - + ICharacterPairMatcher matcher = new DefaultCharacterPairMatcher(matchChars, + IDocumentExtension3.DEFAULT_PARTITIONING, true); + // character pair matching support.setCharacterPairMatcher(matcher); support.setMatchingCharacterPainterPreferenceKeys( SQDevPreferenceConstants.SQDEV_EDITOR_MATCHING_BRACKETS_KEY, SQDevPreferenceConstants.SQDEV_EDITOR_MATCHING_BRACKETS_COLOR_KEY); - + // newLine highlighting support.setCursorLinePainterPreferenceKeys( SQDevPreferenceConstants.SQDEV_EDITOR_HIGHLIGHT_CURRENTLINE_KEY, SQDevPreferenceConstants.SQDEV_EDITOR_HIGHLIGHT_CURRENTLINE_COLOR_KEY); - + } - + /** * Gets the EditorKeyEventQueue of this editor. * @@ -202,12 +194,11 @@ protected void configureSourceViewerDecorationSupport( public EditorKeyEventQueue getEditorKeyEventQueue() { return editorKeyEventQueue; } - - public void setEditorKeyEventQueue( - EditorKeyEventQueue editorKeyEventQueue) { + + public void setEditorKeyEventQueue(EditorKeyEventQueue editorKeyEventQueue) { this.editorKeyEventQueue = editorKeyEventQueue; } - + /** * Adds the configured CharacterPairs as a * CharacterPairHandler to this editor.
@@ -219,14 +210,14 @@ public void setEditorKeyEventQueue( */ protected void configureCharacterPairHandler() { CharacterPairHandler pairHandler = new CharacterPairHandler(this); - + for (CharacterPair currentPair : getConfiguredCharacterPairs()) { pairHandler.addPair(currentPair); } - + getEditorKeyEventQueue().queueEditorKeyHandler(pairHandler); } - + /** * Gets the CharacterPairs that should be used by this editor * @@ -234,16 +225,16 @@ protected void configureCharacterPairHandler() { */ protected List getCharacterPairs() { List pairList = new ArrayList(); - + pairList.add(CharacterPair.DOUBLE_QUOTATION_MARKS); pairList.add(CharacterPair.SINGLE_QUOTATION_MARKS); pairList.add(CharacterPair.ROUND_BRACKETS); pairList.add(CharacterPair.SQUARE_BRACKETS); pairList.add(CharacterPair.CURLY_BRACKETS); - + return pairList; } - + /** * Gets a list of all configured character pairs from this editor */ @@ -251,52 +242,52 @@ public List getConfiguredCharacterPairs() { if (characterPairs == null) { characterPairs = new ArrayList(0); } - + return characterPairs; } - + @Override public void createPartControl(Composite parent) { super.createPartControl(parent); - + // infrastructure for code folding ProjectionViewer viewer = (ProjectionViewer) getSourceViewer(); - - ProjectionSupport projectionSupport = new ProjectionSupport(viewer, - getAnnotationAccess(), getSharedColors()); - + + ProjectionSupport projectionSupport = new ProjectionSupport(viewer, getAnnotationAccess(), + getSharedColors()); + projectionSupport.install(); - + // turn projection mode on viewer.doOperation(ProjectionViewer.TOGGLE); - - + + if (fSourceViewerDecorationSupport != null) { // combine the SQDev PreferenceStore with the editor's one - + // use the SQDev preferenceStore as the baseStore MultiPreferenceStore multiStore = new MultiPreferenceStore( SQDevPreferenceUtil.getPreferenceStore()); - + // add the editor's preferenceStore if available IPreferenceStore editorStore = this.getPreferenceStore(); if (editorStore != null) { multiStore.addPreferenceStore(editorStore); } - + fSourceViewerDecorationSupport.install(multiStore); } - + createManagers(managerList); - + // parse the input for the first time parseInput(true); } - + /** - * Updates the editor. Needed when some changes are made to the way the - * editor content should be displayed or when the behaviour of the editor - * should change.
+ * Updates the editor. Needed when some changes are made to the way the editor + * content should be displayed or when the behaviour of the editor should + * change.
*
* Note: This method can be called from any Thread * @@ -305,26 +296,24 @@ public void createPartControl(Composite parent) { */ public void update(boolean reconfigureSourceViewer) { // TODO: gets called way to often on editor opening - + PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() { - + @Override public void run() { if (getSourceViewer() != null) { getSourceViewer().invalidateTextPresentation(); - - if ((getSourceViewer() instanceof ISourceViewerExtension2) - && reconfigureSourceViewer) { + + if ((getSourceViewer() instanceof ISourceViewerExtension2) && reconfigureSourceViewer) { // reconfigure the SourceViewer - ((ISourceViewerExtension2) getSourceViewer()) - .unconfigure(); + ((ISourceViewerExtension2) getSourceViewer()).unconfigure(); getSourceViewer().configure(getBasicConfiguration()); } } } }); } - + /** * Gets the BasicSourceViewerConfiguration of this editor * @@ -332,13 +321,12 @@ public void run() { */ public BasicSourceViewerConfiguration getBasicConfiguration() { if (configuration == null) { - configuration = new BasicSourceViewerConfiguration( - getColorManager(), this); + configuration = new BasicSourceViewerConfiguration(getColorManager(), this); } - + return configuration; } - + /** * Gets the BasicDocumentProvider of this editor * @@ -348,20 +336,20 @@ public BasicDocumentProvider getBasicProvider() { if (provider == null) { provider = new BasicDocumentProvider(); } - + return provider; } - + /** * Gets the ParseTree representing the input of this editor * - * @return The ParseTree or null if none has been - * set so far + * @return The ParseTree or null if none has been set + * so far */ public ParseTree getParseTree() { return parseTree; } - + /** * Gets the names of the rules used for parsing this editor's input * @@ -370,11 +358,11 @@ public ParseTree getParseTree() { public List getParseRuleNames() { return parseRuleNames; } - + /** - * This is a helper method that will do the parsing for the given input - * wihtout any checks (whetehr there is an active parsing job) and in the - * same thread as it is called + * This is a helper method that will do the parsing for the given input wihtout + * any checks (whetehr there is an active parsing job) and in the same thread as + * it is called * * @param input * The input to parse @@ -383,7 +371,7 @@ public List getParseRuleNames() { private IStatus startParsingInput(String input) { // preprocess doPreprocessorParsing(input); - + // check if this parsing should be cancelled synchronized (parsingIsCancelled) { if (parsingIsCancelled) { @@ -391,10 +379,10 @@ private IStatus startParsingInput(String input) { return Status.CANCEL_STATUS; } } - + // parse ParseTree output = doParse(input); - + // check if this parsing should be cancelled synchronized (parsingIsCancelled) { if (parsingIsCancelled) { @@ -402,34 +390,34 @@ private IStatus startParsingInput(String input) { return Status.CANCEL_STATUS; } } - + if (output == null || output.getChildCount() == 0) { applyParseChanges(); - + return Status.CANCEL_STATUS; } else { parseTree = output; - + if (!processParseTree(parseTree)) { applyParseChanges(); } - + return Status.OK_STATUS; } } - + /** - * Parses the input of this editor, updates the parseTree and sends it to - * the {@link #processParseTree(ParseTree)} method automatically. Before - * doing so it will call the preprocessor parser via - * {@link #doPreprocessorParsing(String)}. If you need to specify a custom - * preprocessor parser or disable it you have to overwrite that method. + * Parses the input of this editor, updates the parseTree and sends it to the + * {@link #processParseTree(ParseTree)} method automatically. Before doing so it + * will call the preprocessor parser via {@link #doPreprocessorParsing(String)}. + * If you need to specify a custom preprocessor parser or disable it you have to + * overwrite that method. * * @param suspend - * Indicates whether the calling thread should be suspended until - * the parsing is done. If there is currently another - * {@link #parseJob} the parsing will be rescheduled but the - * suspension will be cancelled + * Indicates whether the calling thread should be suspended until the + * parsing is done. If there is currently another {@link #parseJob} + * the parsing will be rescheduled but the suspension will be + * cancelled * * @return True if the parsing could be done successfully and * False otherwise @@ -438,33 +426,32 @@ public boolean parseInput(boolean suspend) { if (getEditorInput() == null) { return false; } - + IDocument document = getBasicProvider().getDocument(getEditorInput()); - + if (document == null) { return false; } - + String input = document.get(); - + if (input == null) { return false; } - + synchronized (parsingIsCancelled) { - if (parsingIsCancelled - && (parseJob == null || parseJob.getResult() != null)) { + if (parsingIsCancelled && (parseJob == null || parseJob.getResult() != null)) { // There is no other parsing in progress that should be // cancelled and cancelling is only possible after having // initialized it parsingIsCancelled = false; } } - + if (parseJob != null && parseJob.getState() != Job.NONE) { // Ther previous Job is still running -> reschedule parseJob.addJobChangeListener(new JobChangeAdapter() { - + @Override public void done(IJobChangeEvent event) { // As there has been a request to parse the input again @@ -473,38 +460,37 @@ public void done(IJobChangeEvent event) { parseInput(); } }); - + return false; } - + if (suspend) { startParsingInput(input); } else { - parseJob = new Job( - "Parsing \"" + getEditorInput().getName() + "\"...") { - + parseJob = new Job("Parsing \"" + getEditorInput().getName() + "\"...") { + @Override protected IStatus run(IProgressMonitor monitor) { return startParsingInput(input); } }; - + // schedule parsing parseJob.schedule(); } - + return true; } - + /** - * Parses the input of this editor, updates the parseTree and sends it to - * the {@link #processParseTree(ParseTree)} method automatically. Before - * doing so it will call the preprocessor parser via - * {@link #doPreprocessorParsing(String)}. If you need to specify a custom - * preprocessor parser or disable it you have to overwrite that method.
- * This method will not wait until the parsing is done. If you need the - * parsing to be done when this method returns youo can use - * {@link #parseInput(boolean)} instead + * Parses the input of this editor, updates the parseTree and sends it to the + * {@link #processParseTree(ParseTree)} method automatically. Before doing so it + * will call the preprocessor parser via {@link #doPreprocessorParsing(String)}. + * If you need to specify a custom preprocessor parser or disable it you have to + * overwrite that method.
+ * This method will not wait until the parsing is done. If you need the parsing + * to be done when this method returns youo can use {@link #parseInput(boolean)} + * instead * * @return True if the parsing could be done successfully and * False otherwise @@ -512,147 +498,118 @@ protected IStatus run(IProgressMonitor monitor) { public boolean parseInput() { return parseInput(false); } - + /** - * This method will cancel a running parse-process or at least the - * corresponding processing of the parse result + * This method will cancel a running parse-process or at least the corresponding + * processing of the parse result */ public void cancelParsing() { synchronized (parsingIsCancelled) { parsingIsCancelled = true; } } - + /** - * A default implementation of a preprocessor parser that parses the input - * first and sets the found macros if this editor is an instance of + * A default implementation of a preprocessor parser that parses the input first + * and sets the found macros if this editor is an instance of * IMacroSupport. */ protected void doPreprocessorParsing(String input) { - if (this instanceof IMacroSupport - && getEditorInput() instanceof IFileEditorInput) { - ANTLRInputStream prepIn = new ANTLRInputStream(input); - - PreprocessorLexer prepLexer = new PreprocessorLexer(prepIn); - - CommonTokenStream prepTokens = new CommonTokenStream(prepLexer); - - PreprocessorParser prepParser = new PreprocessorParser(prepTokens); - - prepParser.removeErrorListeners(); - PreprocessorErrorListener errorListener = new PreprocessorErrorListener( - 0); - prepParser.addErrorListener(errorListener); - - ParseTreeWalker prepWalker = new ParseTreeWalker(); - - PreprocessorParseListener preprocessorListener = new PreprocessorParseListener( - ((IFileEditorInput) getEditorInput()).getFile() - .getLocation()); - - prepWalker.walk(preprocessorListener, prepParser.start()); - - PreprocessorParseResult result = errorListener.getParseResult(); - - ((IMacroSupport) this) - .setMacros(preprocessorListener.getDefinedMacros(), true); - - // merge parse results and apply them - result.mergeWith(preprocessorListener.getParseResult()); + if (this instanceof IMacroSupport && getEditorInput() instanceof IFileEditorInput) { + PreprocessorParseResult result = ParseUtil.parseAndValidatePreprocess(input, + ((IFileEditorInput) getEditorInput()).getFile().getLocation()); + + ((IMacroSupport) this).setMacros(result.getMacros(), true); + + // apply markers result.applyMarkersTo(this); } else { - createMarker(IMarker.PROBLEM, 0, 0, "Unable to preprocess the file", - IMarker.SEVERITY_ERROR); + createMarker(IMarker.PROBLEM, 0, 0, "Unable to preprocess the file", IMarker.SEVERITY_ERROR); } } - + /** - * Processes whatever needs to be processed when the ParseTree has changed - *
+ * Processes whatever needs to be processed when the ParseTree has changed
* Note: You might want to call {@link #applyParseChanges()} after the * processing * * @param tree * The generated tree - * @return Whether this function has called {@link #applyParseChanges()}. If - * not the default implementation of {@link #parseInput()} will call - * this function afterwards. + * @return Whether this function has called {@link #applyParseChanges()}. If not + * the default implementation of {@link #parseInput()} will call this + * function afterwards. */ protected boolean processParseTree(ParseTree parseTree) { return false; } - + /** - * Parses the input of this editor in order to set the {@link #parseTree} - * for this editor.
- * Note: You might want to call {@link #applyParseChanges()} after parsing - * (or rather after {@link #processParseTree(ParseTree)}.
- * Note that before this method is called - * {@link #doPreprocessorParsing(String)} gets called. If you don't want to - * use the default preprocessor parsing strategy you have to overwrite that - * method. + * Parses the input of this editor in order to set the {@link #parseTree} for + * this editor.
+ * Note: You might want to call {@link #applyParseChanges()} after parsing (or + * rather after {@link #processParseTree(ParseTree)}.
+ * Note that before this method is called {@link #doPreprocessorParsing(String)} + * gets called. If you don't want to use the default preprocessor parsing + * strategy you have to overwrite that method. * * @param input * The input to parse * * @return The resulting ParseTree or null if the - * parsing failed (if not overridden by subclasses this method - * always returns null + * parsing failed (if not overridden by subclasses this method always + * returns null */ protected ParseTree doParse(String input) { // parsing diabled return null; } - + /** * Creates all managers that should work on this editor * * @param managerList - * The list of managers. The newly created ones have to be added - * to this list + * The list of managers. The newly created ones have to be added to + * this list */ protected void createManagers(List managerList) { // add folding manager - managerList.add( - new BasicFoldingManager(((ProjectionViewer) getSourceViewer()) - .getProjectionAnnotationModel())); + managerList.add(new BasicFoldingManager( + ((ProjectionViewer) getSourceViewer()).getProjectionAnnotationModel())); // add marker manager managerList.add(new BasicMarkerManager(this)); } - + @Override - public void createMarker(String type, int offset, int length, - String message, int severity) { + public void createMarker(String type, int offset, int length, String message, int severity) { if (getEditorInput() == null) { return; } - + int line; try { - line = getBasicProvider().getDocument(getEditorInput()) - .getLineOfOffset(offset); + line = getBasicProvider().getDocument(getEditorInput()).getLineOfOffset(offset); } catch (BadLocationException e) { try { throw new SQDevEditorException("Can't create marker", e); } catch (SQDevEditorException e1) { e1.printStackTrace(); - + return; } } - - ((BasicMarkerManager) getManager(BasicMarkerManager.TYPE)) - .addMarker(type, line, offset, length, severity, message); + + ((BasicMarkerManager) getManager(BasicMarkerManager.TYPE)).addMarker(type, line, offset, length, + severity, message); } - + @Override public void doSave(IProgressMonitor progressMonitor) { super.doSave(progressMonitor); - + // reparse on save parseInput(); } - + /** * Applies the changes detected by the parsing by notifying the respective * managers to apply their work @@ -662,7 +619,7 @@ public void applyParseChanges() { manager.apply(); } } - + /** * Gets a manager working on this editor of the given type * @@ -676,22 +633,22 @@ public IManager getManager(String type) { return manager; } } - + return null; } - + /** - * Adds a foldable area to the editor if a {@link BasicFoldingManager} has - * been installed.
- * In order of the changes to take effect {@link #applyParseChanges()} has - * to be called + * Adds a foldable area to the editor if a {@link BasicFoldingManager} has been + * installed.
+ * In order of the changes to take effect {@link #applyParseChanges()} has to be + * called * * @param position * The Position this area should be on */ public void addFoldingArea(Position position) { IDocument doc = getDocumentProvider().getDocument(getEditorInput()); - + // don't fold if the code is only one line long try { if (doc == null || doc.getLineOfOffset(position.offset) == doc @@ -700,37 +657,33 @@ public void addFoldingArea(Position position) { } } catch (BadLocationException e) { e.printStackTrace(); - - SQDevInfobox info = new SQDevInfobox( - "Error in code folding framework!", e); + + SQDevInfobox info = new SQDevInfobox("Error in code folding framework!", e); info.open(false); - + return; } - + ProjectionAnnotation annotation = new ProjectionAnnotation(); - + BasicFoldingManager foldingManager = (BasicFoldingManager) getManager( BasicFoldingManager.getManagerType()); - + if (foldingManager == null) { return; } - + foldingManager.addFoldingArea( - new AbstractMap.SimpleEntry( - annotation, position)); + new AbstractMap.SimpleEntry(annotation, position)); } - + /** - * Checks whether this editor is in a valid state (no errors in the source - * code) + * Checks whether this editor is in a valid state (no errors in the source code) */ public boolean isValid() { - return ((BasicMarkerManager) getManager(BasicMarkerManager.TYPE)) - .isValidState(); + return ((BasicMarkerManager) getManager(BasicMarkerManager.TYPE)).isValidState(); } - + /** * Confidures all KeyHandler for this editor */ diff --git a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/BasicCompletionProposal.java b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/BasicCompletionProposal.java similarity index 100% rename from plugin/raven.sqdev.editors/src/raven/sqdev/editors/BasicCompletionProposal.java rename to plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/BasicCompletionProposal.java diff --git a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/BasicContentAssistProcessor.java b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/BasicContentAssistProcessor.java similarity index 100% rename from plugin/raven.sqdev.editors/src/raven/sqdev/editors/BasicContentAssistProcessor.java rename to plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/BasicContentAssistProcessor.java diff --git a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/BasicDocumentProvider.java b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/BasicDocumentProvider.java similarity index 100% rename from plugin/raven.sqdev.editors/src/raven/sqdev/editors/BasicDocumentProvider.java rename to plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/BasicDocumentProvider.java diff --git a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/BasicFoldingManager.java b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/BasicFoldingManager.java similarity index 100% rename from plugin/raven.sqdev.editors/src/raven/sqdev/editors/BasicFoldingManager.java rename to plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/BasicFoldingManager.java diff --git a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/BasicInformationControl.java b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/BasicInformationControl.java similarity index 100% rename from plugin/raven.sqdev.editors/src/raven/sqdev/editors/BasicInformationControl.java rename to plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/BasicInformationControl.java diff --git a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/BasicKeywordProvider.java b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/BasicKeywordProvider.java similarity index 100% rename from plugin/raven.sqdev.editors/src/raven/sqdev/editors/BasicKeywordProvider.java rename to plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/BasicKeywordProvider.java diff --git a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/BasicMarkerManager.java b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/BasicMarkerManager.java similarity index 100% rename from plugin/raven.sqdev.editors/src/raven/sqdev/editors/BasicMarkerManager.java rename to plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/BasicMarkerManager.java diff --git a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/BasicParseTimeListener.java b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/BasicParseTimeListener.java similarity index 100% rename from plugin/raven.sqdev.editors/src/raven/sqdev/editors/BasicParseTimeListener.java rename to plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/BasicParseTimeListener.java diff --git a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/BasicPartitionScanner.java b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/BasicPartitionScanner.java similarity index 100% rename from plugin/raven.sqdev.editors/src/raven/sqdev/editors/BasicPartitionScanner.java rename to plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/BasicPartitionScanner.java diff --git a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/BasicSourceViewerConfiguration.java b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/BasicSourceViewerConfiguration.java similarity index 100% rename from plugin/raven.sqdev.editors/src/raven/sqdev/editors/BasicSourceViewerConfiguration.java rename to plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/BasicSourceViewerConfiguration.java diff --git a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/BasicTextHover.java b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/BasicTextHover.java similarity index 100% rename from plugin/raven.sqdev.editors/src/raven/sqdev/editors/BasicTextHover.java rename to plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/BasicTextHover.java diff --git a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/CharacterPair.java b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/CharacterPair.java similarity index 100% rename from plugin/raven.sqdev.editors/src/raven/sqdev/editors/CharacterPair.java rename to plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/CharacterPair.java diff --git a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/CharacterPairHandler.java b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/CharacterPairHandler.java similarity index 100% rename from plugin/raven.sqdev.editors/src/raven/sqdev/editors/CharacterPairHandler.java rename to plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/CharacterPairHandler.java diff --git a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/ColorManager.java b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/ColorManager.java similarity index 100% rename from plugin/raven.sqdev.editors/src/raven/sqdev/editors/ColorManager.java rename to plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/ColorManager.java diff --git a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/EditorKeyEventManager.java b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/EditorKeyEventManager.java similarity index 100% rename from plugin/raven.sqdev.editors/src/raven/sqdev/editors/EditorKeyEventManager.java rename to plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/EditorKeyEventManager.java diff --git a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/EditorKeyEventQueue.java b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/EditorKeyEventQueue.java similarity index 100% rename from plugin/raven.sqdev.editors/src/raven/sqdev/editors/EditorKeyEventQueue.java rename to plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/EditorKeyEventQueue.java diff --git a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/KeywordScanner.java b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/KeywordScanner.java similarity index 100% rename from plugin/raven.sqdev.editors/src/raven/sqdev/editors/KeywordScanner.java rename to plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/KeywordScanner.java diff --git a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/MarkerInformation.java b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/MarkerInformation.java similarity index 100% rename from plugin/raven.sqdev.editors/src/raven/sqdev/editors/MarkerInformation.java rename to plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/MarkerInformation.java diff --git a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/MultiKeywordScanner.java b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/MultiKeywordScanner.java similarity index 100% rename from plugin/raven.sqdev.editors/src/raven/sqdev/editors/MultiKeywordScanner.java rename to plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/MultiKeywordScanner.java diff --git a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/NonRuleBasedDamagerRepairer.java b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/NonRuleBasedDamagerRepairer.java similarity index 100% rename from plugin/raven.sqdev.editors/src/raven/sqdev/editors/NonRuleBasedDamagerRepairer.java rename to plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/NonRuleBasedDamagerRepairer.java diff --git a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/WordDetector.java b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/WordDetector.java similarity index 100% rename from plugin/raven.sqdev.editors/src/raven/sqdev/editors/WordDetector.java rename to plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/WordDetector.java diff --git a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/activator/Activator.java b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/activator/Activator.java similarity index 100% rename from plugin/raven.sqdev.editors/src/raven/sqdev/editors/activator/Activator.java rename to plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/activator/Activator.java diff --git a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/exceptions/IllegalConstructorException.java b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/exceptions/IllegalConstructorException.java similarity index 100% rename from plugin/raven.sqdev.editors/src/raven/sqdev/editors/exceptions/IllegalConstructorException.java rename to plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/exceptions/IllegalConstructorException.java diff --git a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/exceptions/IllegalModificationException.java b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/exceptions/IllegalModificationException.java similarity index 100% rename from plugin/raven.sqdev.editors/src/raven/sqdev/editors/exceptions/IllegalModificationException.java rename to plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/exceptions/IllegalModificationException.java diff --git a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/exceptions/SQDevEditorException.java b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/exceptions/SQDevEditorException.java similarity index 100% rename from plugin/raven.sqdev.editors/src/raven/sqdev/editors/exceptions/SQDevEditorException.java rename to plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/exceptions/SQDevEditorException.java diff --git a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/other/ConfigEditor.java b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/other/ConfigEditor.java similarity index 100% rename from plugin/raven.sqdev.editors/src/raven/sqdev/editors/other/ConfigEditor.java rename to plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/other/ConfigEditor.java diff --git a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/sqdevEditor/SQDevFileEditor.java b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/sqdevEditor/SQDevFileEditor.java similarity index 100% rename from plugin/raven.sqdev.editors/src/raven/sqdev/editors/sqdevEditor/SQDevFileEditor.java rename to plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/sqdevEditor/SQDevFileEditor.java diff --git a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/stringTableEditor/Language.java b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/stringTableEditor/Language.java similarity index 100% rename from plugin/raven.sqdev.editors/src/raven/sqdev/editors/stringTableEditor/Language.java rename to plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/stringTableEditor/Language.java diff --git a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/stringTableEditor/StringTableCellEditingSupport.java b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/stringTableEditor/StringTableCellEditingSupport.java similarity index 100% rename from plugin/raven.sqdev.editors/src/raven/sqdev/editors/stringTableEditor/StringTableCellEditingSupport.java rename to plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/stringTableEditor/StringTableCellEditingSupport.java diff --git a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/stringTableEditor/StringTableCellLabelProvider.java b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/stringTableEditor/StringTableCellLabelProvider.java similarity index 100% rename from plugin/raven.sqdev.editors/src/raven/sqdev/editors/stringTableEditor/StringTableCellLabelProvider.java rename to plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/stringTableEditor/StringTableCellLabelProvider.java diff --git a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/stringTableEditor/StringTableContainer.java b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/stringTableEditor/StringTableContainer.java similarity index 100% rename from plugin/raven.sqdev.editors/src/raven/sqdev/editors/stringTableEditor/StringTableContainer.java rename to plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/stringTableEditor/StringTableContainer.java diff --git a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/stringTableEditor/StringTableContentProvider.java b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/stringTableEditor/StringTableContentProvider.java similarity index 100% rename from plugin/raven.sqdev.editors/src/raven/sqdev/editors/stringTableEditor/StringTableContentProvider.java rename to plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/stringTableEditor/StringTableContentProvider.java diff --git a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/stringTableEditor/StringTableEditor.java b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/stringTableEditor/StringTableEditor.java similarity index 100% rename from plugin/raven.sqdev.editors/src/raven/sqdev/editors/stringTableEditor/StringTableEditor.java rename to plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/stringTableEditor/StringTableEditor.java diff --git a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/stringTableEditor/StringTableKey.java b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/stringTableEditor/StringTableKey.java similarity index 100% rename from plugin/raven.sqdev.editors/src/raven/sqdev/editors/stringTableEditor/StringTableKey.java rename to plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/stringTableEditor/StringTableKey.java diff --git a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/stringTableEditor/StringTablePackage.java b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/stringTableEditor/StringTablePackage.java similarity index 100% rename from plugin/raven.sqdev.editors/src/raven/sqdev/editors/stringTableEditor/StringTablePackage.java rename to plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/stringTableEditor/StringTablePackage.java diff --git a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/stringTableEditor/StringTableSourceViewerConfiguration.java b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/stringTableEditor/StringTableSourceViewerConfiguration.java similarity index 100% rename from plugin/raven.sqdev.editors/src/raven/sqdev/editors/stringTableEditor/StringTableSourceViewerConfiguration.java rename to plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/stringTableEditor/StringTableSourceViewerConfiguration.java diff --git a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/stringTableEditor/StringTableXMLEditor.java b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/stringTableEditor/StringTableXMLEditor.java similarity index 89% rename from plugin/raven.sqdev.editors/src/raven/sqdev/editors/stringTableEditor/StringTableXMLEditor.java rename to plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/stringTableEditor/StringTableXMLEditor.java index 5b262020..7a28d6d8 100644 --- a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/stringTableEditor/StringTableXMLEditor.java +++ b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/stringTableEditor/StringTableXMLEditor.java @@ -26,7 +26,7 @@ * */ public class StringTableXMLEditor extends BasicCodeEditor { - + public static final String TAG = "__stringTableEditor_Tag"; public static final IPredicateRule TAG_RULE = new MultiLineRule("<", ">", new Token(TAG)); /** @@ -37,78 +37,80 @@ public class StringTableXMLEditor extends BasicCodeEditor { * The package list contained in this editor */ private List packageList; - - + public StringTableXMLEditor() { getBasicProvider().getPartitionScanner().setRules(new IPredicateRule[] { TAG_RULE }); } - + @Override protected ParseTree doParse(String input) { ANTLRInputStream in = new ANTLRInputStream(input); - - BasicErrorListener listener = new BasicErrorListener(this); - + + BasicErrorListener listener = new BasicErrorListener(); + StringTableLexer lexer = new StringTableLexer(in); lexer.removeErrorListeners(); lexer.addErrorListener(listener); - + stream = new CommonTokenStream(lexer); - + StringTableParser parser = new StringTableParser(stream); parser.removeErrorListeners(); parser.addErrorListener(listener); - - return parser.content(); + + ParseTree tree = parser.content(); + + listener.getParseResult().applyMarkersTo(this); + + return tree; } - + @Override protected boolean processParseTree(ParseTree tree) { ParseTreeWalker walker = new ParseTreeWalker(); - + StringTableWalkListener listener = new StringTableWalkListener(stream); - + walker.walk(listener, tree); - + packageList = listener.getPackageList(); - + applyParseChanges(); - + return false; } - + @Override protected List getCharacterPairs() { List pairs = new ArrayList(); - + pairs.add(CharacterPair.DOUBLE_QUOTATION_MARKS); pairs.add(CharacterPair.SINGLE_QUOTATION_MARKS); pairs.add(CharacterPair.TAG); - + return pairs; } - + @Override public BasicSourceViewerConfiguration getBasicConfiguration() { - if (configuration == null - || !(configuration instanceof StringTableSourceViewerConfiguration)) { + if (configuration == null || !(configuration instanceof StringTableSourceViewerConfiguration)) { configuration = new StringTableSourceViewerConfiguration(getColorManager(), this); } - + return configuration; } - + /** - * Gets the list of StringTablePackages contained in this - * editor. May be null if not yet initialized + * Gets the list of StringTablePackages contained in this editor. + * May be null if not yet initialized */ public List getPackageList() { return packageList; } - + @Override public boolean isDirty() { return super.isDirty(); } - + } diff --git a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/stringtableParsing/StringTable.tokens b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/stringtableParsing/StringTable.tokens similarity index 100% rename from plugin/raven.sqdev.editors/src/raven/sqdev/editors/stringtableParsing/StringTable.tokens rename to plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/stringtableParsing/StringTable.tokens diff --git a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/stringtableParsing/StringTableBaseListener.java b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/stringtableParsing/StringTableBaseListener.java similarity index 100% rename from plugin/raven.sqdev.editors/src/raven/sqdev/editors/stringtableParsing/StringTableBaseListener.java rename to plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/stringtableParsing/StringTableBaseListener.java diff --git a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/stringtableParsing/StringTableBaseVisitor.java b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/stringtableParsing/StringTableBaseVisitor.java similarity index 100% rename from plugin/raven.sqdev.editors/src/raven/sqdev/editors/stringtableParsing/StringTableBaseVisitor.java rename to plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/stringtableParsing/StringTableBaseVisitor.java diff --git a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/stringtableParsing/StringTableLexer.java b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/stringtableParsing/StringTableLexer.java similarity index 100% rename from plugin/raven.sqdev.editors/src/raven/sqdev/editors/stringtableParsing/StringTableLexer.java rename to plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/stringtableParsing/StringTableLexer.java diff --git a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/stringtableParsing/StringTableLexer.tokens b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/stringtableParsing/StringTableLexer.tokens similarity index 100% rename from plugin/raven.sqdev.editors/src/raven/sqdev/editors/stringtableParsing/StringTableLexer.tokens rename to plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/stringtableParsing/StringTableLexer.tokens diff --git a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/stringtableParsing/StringTableListener.java b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/stringtableParsing/StringTableListener.java similarity index 100% rename from plugin/raven.sqdev.editors/src/raven/sqdev/editors/stringtableParsing/StringTableListener.java rename to plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/stringtableParsing/StringTableListener.java diff --git a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/stringtableParsing/StringTableParser.java b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/stringtableParsing/StringTableParser.java similarity index 100% rename from plugin/raven.sqdev.editors/src/raven/sqdev/editors/stringtableParsing/StringTableParser.java rename to plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/stringtableParsing/StringTableParser.java diff --git a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/stringtableParsing/StringTableVisitor.java b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/stringtableParsing/StringTableVisitor.java similarity index 100% rename from plugin/raven.sqdev.editors/src/raven/sqdev/editors/stringtableParsing/StringTableVisitor.java rename to plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/stringtableParsing/StringTableVisitor.java diff --git a/plugin/raven.sqdev.editors/src/raven/sqdev/editors/stringtableParsing/StringTableWalkListener.java b/plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/stringtableParsing/StringTableWalkListener.java similarity index 100% rename from plugin/raven.sqdev.editors/src/raven/sqdev/editors/stringtableParsing/StringTableWalkListener.java rename to plugin/Raven.SQDev.Editors/src/raven/sqdev/editors/stringtableParsing/StringTableWalkListener.java diff --git a/plugin/raven.sqdev.misc/.classpath b/plugin/Raven.SQDev.Misc/.classpath similarity index 95% rename from plugin/raven.sqdev.misc/.classpath rename to plugin/Raven.SQDev.Misc/.classpath index 23636a05..cea67ffa 100644 --- a/plugin/raven.sqdev.misc/.classpath +++ b/plugin/Raven.SQDev.Misc/.classpath @@ -3,6 +3,6 @@ - + diff --git a/plugin/raven.sqdev.misc/.project b/plugin/Raven.SQDev.Misc/.project similarity index 100% rename from plugin/raven.sqdev.misc/.project rename to plugin/Raven.SQDev.Misc/.project diff --git a/plugin/raven.sqdev.editors/.settings/org.eclipse.jdt.core.prefs b/plugin/Raven.SQDev.Misc/.settings/org.eclipse.jdt.core.prefs similarity index 100% rename from plugin/raven.sqdev.editors/.settings/org.eclipse.jdt.core.prefs rename to plugin/Raven.SQDev.Misc/.settings/org.eclipse.jdt.core.prefs diff --git a/plugin/Raven.SQDev.Misc/ANTLR/antlr-runtime-4.7.jar b/plugin/Raven.SQDev.Misc/ANTLR/antlr-runtime-4.7.jar new file mode 100644 index 00000000..5c3bf7d3 Binary files /dev/null and b/plugin/Raven.SQDev.Misc/ANTLR/antlr-runtime-4.7.jar differ diff --git a/plugin/raven.sqdev.misc/META-INF/MANIFEST.MF b/plugin/Raven.SQDev.Misc/META-INF/MANIFEST.MF similarity index 83% rename from plugin/raven.sqdev.misc/META-INF/MANIFEST.MF rename to plugin/Raven.SQDev.Misc/META-INF/MANIFEST.MF index 2ca95705..60cbbcde 100644 --- a/plugin/raven.sqdev.misc/META-INF/MANIFEST.MF +++ b/plugin/Raven.SQDev.Misc/META-INF/MANIFEST.MF @@ -2,14 +2,15 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: Misc Bundle-SymbolicName: raven.sqdev.misc;singleton:=true -Bundle-Version: 0.5.0 +Bundle-Version: 0.6.1.stable Bundle-Activator: raven.sqdev.activator.Activator Require-Bundle: org.eclipse.core.runtime, org.eclipse.swt, org.eclipse.ui.workbench, org.eclipse.ui, org.eclipse.text, - org.eclipse.core.resources + org.eclipse.core.resources, + org.junit Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Bundle-ActivationPolicy: lazy Export-Package: org.antlr.v4.runtime, @@ -17,6 +18,8 @@ Export-Package: org.antlr.v4.runtime, org.antlr.v4.runtime.dfa, org.antlr.v4.runtime.misc, org.antlr.v4.runtime.tree, + org.antlr.v4.runtime.tree.pattern, + org.antlr.v4.runtime.tree.xpath, raven.sqdev.constants, raven.sqdev.exceptions, raven.sqdev.fileSystemListener, @@ -33,5 +36,5 @@ Export-Package: org.antlr.v4.runtime, raven.sqdev.syntax Import-Package: raven.sqdev.misc Bundle-Vendor: Raven -Bundle-ClassPath: ANTLR/antlr-runtime-4.5.3.jar, +Bundle-ClassPath: ANTLR/antlr-runtime-4.7.jar, . diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/activator/Activator.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/activator/Activator.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/activator/Activator.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/activator/Activator.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/constants/ISQDevColorConstants.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/constants/ISQDevColorConstants.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/constants/ISQDevColorConstants.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/constants/ISQDevColorConstants.class diff --git a/plugin/Raven.SQDev.Misc/bin/raven/sqdev/constants/ProblemMessages.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/constants/ProblemMessages.class new file mode 100644 index 00000000..766f614b Binary files /dev/null and b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/constants/ProblemMessages.class differ diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/constants/SQDevPreferenceConstants.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/constants/SQDevPreferenceConstants.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/constants/SQDevPreferenceConstants.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/constants/SQDevPreferenceConstants.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/constants/TextConstants.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/constants/TextConstants.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/constants/TextConstants.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/constants/TextConstants.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/exceptions/BadSyntaxException.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/exceptions/BadSyntaxException.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/exceptions/BadSyntaxException.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/exceptions/BadSyntaxException.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/exceptions/FailedAtCreatingFileException.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/exceptions/FailedAtCreatingFileException.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/exceptions/FailedAtCreatingFileException.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/exceptions/FailedAtCreatingFileException.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/exceptions/IllegalAccessStateException.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/exceptions/IllegalAccessStateException.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/exceptions/IllegalAccessStateException.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/exceptions/IllegalAccessStateException.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/exceptions/IllegalConstructorException.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/exceptions/IllegalConstructorException.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/exceptions/IllegalConstructorException.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/exceptions/IllegalConstructorException.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/exceptions/IllegalModificationException.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/exceptions/IllegalModificationException.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/exceptions/IllegalModificationException.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/exceptions/IllegalModificationException.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/exceptions/IllegalRGBSyntaxException.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/exceptions/IllegalRGBSyntaxException.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/exceptions/IllegalRGBSyntaxException.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/exceptions/IllegalRGBSyntaxException.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/exceptions/SQDevCollectionException.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/exceptions/SQDevCollectionException.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/exceptions/SQDevCollectionException.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/exceptions/SQDevCollectionException.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/exceptions/SQDevCoreException.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/exceptions/SQDevCoreException.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/exceptions/SQDevCoreException.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/exceptions/SQDevCoreException.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/exceptions/SQDevEditorException.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/exceptions/SQDevEditorException.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/exceptions/SQDevEditorException.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/exceptions/SQDevEditorException.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/exceptions/SQDevException.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/exceptions/SQDevException.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/exceptions/SQDevException.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/exceptions/SQDevException.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/exceptions/SQDevFileIsInvalidException.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/exceptions/SQDevFileIsInvalidException.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/exceptions/SQDevFileIsInvalidException.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/exceptions/SQDevFileIsInvalidException.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/exceptions/SQDevFileNoSuchAttributeException.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/exceptions/SQDevFileNoSuchAttributeException.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/exceptions/SQDevFileNoSuchAttributeException.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/exceptions/SQDevFileNoSuchAttributeException.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/exceptions/SQDevIllegalFileChangeException.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/exceptions/SQDevIllegalFileChangeException.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/exceptions/SQDevIllegalFileChangeException.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/exceptions/SQDevIllegalFileChangeException.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/exceptions/SQDevSyntaxException.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/exceptions/SQDevSyntaxException.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/exceptions/SQDevSyntaxException.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/exceptions/SQDevSyntaxException.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/exceptions/activator/Activator.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/exceptions/activator/Activator.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/exceptions/activator/Activator.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/exceptions/activator/Activator.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/fileSystemListener/AbstractFileSystemChangeListener.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/fileSystemListener/AbstractFileSystemChangeListener.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/fileSystemListener/AbstractFileSystemChangeListener.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/fileSystemListener/AbstractFileSystemChangeListener.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/fileSystemListener/EFileChangeType.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/fileSystemListener/EFileChangeType.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/fileSystemListener/EFileChangeType.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/fileSystemListener/EFileChangeType.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/fileSystemListener/FileSystemChangeAdapter.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/fileSystemListener/FileSystemChangeAdapter.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/fileSystemListener/FileSystemChangeAdapter.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/fileSystemListener/FileSystemChangeAdapter.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/fileSystemListener/FileSystemChangeEvent.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/fileSystemListener/FileSystemChangeEvent.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/fileSystemListener/FileSystemChangeEvent.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/fileSystemListener/FileSystemChangeEvent.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/fileSystemListener/FileSystemWatcher$1.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/fileSystemListener/FileSystemWatcher$1.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/fileSystemListener/FileSystemWatcher$1.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/fileSystemListener/FileSystemWatcher$1.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/fileSystemListener/FileSystemWatcher.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/fileSystemListener/FileSystemWatcher.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/fileSystemListener/FileSystemWatcher.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/fileSystemListener/FileSystemWatcher.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/infoCollection/SQFCommandCollector$1.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/infoCollection/SQFCommandCollector$1.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/infoCollection/SQFCommandCollector$1.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/infoCollection/SQFCommandCollector$1.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/infoCollection/SQFCommandCollector.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/infoCollection/SQFCommandCollector.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/infoCollection/SQFCommandCollector.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/infoCollection/SQFCommandCollector.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/infoCollection/SQFCommandPageProvider.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/infoCollection/SQFCommandPageProvider.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/infoCollection/SQFCommandPageProvider.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/infoCollection/SQFCommandPageProvider.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/infoCollection/base/ELocality$1.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/infoCollection/base/ELocality$1.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/infoCollection/base/ELocality$1.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/infoCollection/base/ELocality$1.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/infoCollection/base/ELocality$2.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/infoCollection/base/ELocality$2.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/infoCollection/base/ELocality$2.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/infoCollection/base/ELocality$2.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/infoCollection/base/ELocality$3.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/infoCollection/base/ELocality$3.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/infoCollection/base/ELocality$3.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/infoCollection/base/ELocality$3.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/infoCollection/base/ELocality.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/infoCollection/base/ELocality.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/infoCollection/base/ELocality.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/infoCollection/base/ELocality.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/infoCollection/base/Keyword.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/infoCollection/base/Keyword.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/infoCollection/base/Keyword.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/infoCollection/base/Keyword.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/infoCollection/base/KeywordList.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/infoCollection/base/KeywordList.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/infoCollection/base/KeywordList.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/infoCollection/base/KeywordList.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/infoCollection/base/SQFCommand.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/infoCollection/base/SQFCommand.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/infoCollection/base/SQFCommand.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/infoCollection/base/SQFCommand.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/infoCollection/base/SQFElement.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/infoCollection/base/SQFElement.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/infoCollection/base/SQFElement.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/infoCollection/base/SQFElement.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/infoCollection/base/Variable.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/infoCollection/base/Variable.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/infoCollection/base/Variable.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/infoCollection/base/Variable.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/interfaces/IAdditionalProposalInformation.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/interfaces/IAdditionalProposalInformation.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/interfaces/IAdditionalProposalInformation.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/interfaces/IAdditionalProposalInformation.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/interfaces/IEditorKeyHandler.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/interfaces/IEditorKeyHandler.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/interfaces/IEditorKeyHandler.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/interfaces/IEditorKeyHandler.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/interfaces/IFileSystemChangeListener.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/interfaces/IFileSystemChangeListener.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/interfaces/IFileSystemChangeListener.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/interfaces/IFileSystemChangeListener.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/interfaces/IKeywordListChangeListener.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/interfaces/IKeywordListChangeListener.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/interfaces/IKeywordListChangeListener.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/interfaces/IKeywordListChangeListener.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/interfaces/IKeywordProvider.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/interfaces/IKeywordProvider.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/interfaces/IKeywordProvider.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/interfaces/IKeywordProvider.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/interfaces/IMacroSupport.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/interfaces/IMacroSupport.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/interfaces/IMacroSupport.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/interfaces/IMacroSupport.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/interfaces/IManager.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/interfaces/IManager.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/interfaces/IManager.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/interfaces/IManager.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/interfaces/IMarkerSupport.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/interfaces/IMarkerSupport.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/interfaces/IMarkerSupport.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/interfaces/IMarkerSupport.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/interfaces/IPluginListener.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/interfaces/IPluginListener.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/interfaces/IPluginListener.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/interfaces/IPluginListener.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/interfaces/IProposalInformationCategory.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/interfaces/IProposalInformationCategory.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/interfaces/IProposalInformationCategory.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/interfaces/IProposalInformationCategory.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/interfaces/IReplaceTester.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/interfaces/IReplaceTester.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/interfaces/IReplaceTester.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/interfaces/IReplaceTester.class diff --git a/plugin/Raven.SQDev.Misc/bin/raven/sqdev/interfaces/ISQFParseInformation.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/interfaces/ISQFParseInformation.class new file mode 100644 index 00000000..228dc759 Binary files /dev/null and b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/interfaces/ISQFParseInformation.class differ diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/interfaces/ISaveable.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/interfaces/ISaveable.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/interfaces/ISaveable.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/interfaces/ISaveable.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/interfaces/IUpdateListener.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/interfaces/IUpdateListener.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/interfaces/IUpdateListener.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/interfaces/IUpdateListener.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/interfaces/IVersionListener.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/interfaces/IVersionListener.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/interfaces/IVersionListener.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/interfaces/IVersionListener.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/AbstractAdditionalProposalInformation.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/AbstractAdditionalProposalInformation.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/AbstractAdditionalProposalInformation.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/AbstractAdditionalProposalInformation.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/AdvancedLineReader.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/AdvancedLineReader.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/AdvancedLineReader.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/AdvancedLineReader.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/ArrayUtils.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/ArrayUtils.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/ArrayUtils.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/ArrayUtils.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/CharacterPair.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/CharacterPair.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/CharacterPair.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/CharacterPair.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/ColorUtils.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/ColorUtils.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/ColorUtils.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/ColorUtils.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/DataTypeList.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/DataTypeList.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/DataTypeList.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/DataTypeList.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$1.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$1.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$1.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$1.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$10.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$10.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$10.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$10.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$11.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$11.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$11.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$11.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$12.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$12.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$12.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$12.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$13.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$13.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$13.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$13.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$14.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$14.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$14.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$14.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$15.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$15.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$15.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$15.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$16.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$16.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$16.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$16.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$17.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$17.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$17.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$17.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$18.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$18.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$18.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$18.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$19.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$19.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$19.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$19.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$2.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$2.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$2.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$2.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$20.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$20.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$20.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$20.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$21.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$21.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$21.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$21.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$22.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$22.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$22.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$22.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$23.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$23.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$23.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$23.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$24.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$24.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$24.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$24.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$25.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$25.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$25.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$25.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$26.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$26.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$26.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$26.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$27.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$27.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$27.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$27.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$28.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$28.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$28.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$28.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$29.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$29.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$29.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$29.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$3.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$3.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$3.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$3.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$30.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$30.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$30.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$30.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$31.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$31.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$31.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$31.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$32.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$32.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$32.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$32.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$33.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$33.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$33.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$33.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$34.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$34.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$34.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$34.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$35.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$35.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$35.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$35.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$36.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$36.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$36.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$36.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$37.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$37.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$37.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$37.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$38.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$38.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$38.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$38.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$39.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$39.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$39.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$39.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$4.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$4.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$4.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$4.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$40.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$40.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$40.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$40.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$41.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$41.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$41.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$41.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$42.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$42.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$42.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$42.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$43.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$43.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$43.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$43.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$44.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$44.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$44.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$44.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$45.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$45.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$45.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$45.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$46.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$46.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$46.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$46.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$47.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$47.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$47.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$47.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$48.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$48.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$48.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$48.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$5.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$5.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$5.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$5.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$6.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$6.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$6.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$6.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$7.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$7.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$7.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$7.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$8.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$8.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$8.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$8.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$9.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$9.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType$9.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType$9.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/EDataType.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/EDataType.class diff --git a/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/FileUtil.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/FileUtil.class new file mode 100644 index 00000000..69aeb85f Binary files /dev/null and b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/FileUtil.class differ diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/LineBuffer.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/LineBuffer.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/LineBuffer.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/LineBuffer.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/ListUtils.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/ListUtils.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/ListUtils.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/ListUtils.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/Macro.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/Macro.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/Macro.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/Macro.class diff --git a/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/Marker.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/Marker.class new file mode 100644 index 00000000..3b6698a0 Binary files /dev/null and b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/Marker.class differ diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/MultiPreferenceStore.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/MultiPreferenceStore.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/MultiPreferenceStore.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/MultiPreferenceStore.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/Pair.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/Pair.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/Pair.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/Pair.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/SQDev.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/SQDev.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/SQDev.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/SQDev.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/SQDevComposite.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/SQDevComposite.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/SQDevComposite.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/SQDevComposite.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/SQDevInfobox$1.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/SQDevInfobox$1.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/SQDevInfobox$1.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/SQDevInfobox$1.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/SQDevInfobox.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/SQDevInfobox.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/SQDevInfobox.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/SQDevInfobox.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/SQDevPreferenceUtil.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/SQDevPreferenceUtil.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/SQDevPreferenceUtil.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/SQDevPreferenceUtil.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/SQDevProjectNature.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/SQDevProjectNature.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/SQDevProjectNature.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/SQDevProjectNature.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/StringProposalInformationCategory.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/StringProposalInformationCategory.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/StringProposalInformationCategory.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/StringProposalInformationCategory.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/StyledProposalInformationCategory.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/StyledProposalInformationCategory.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/StyledProposalInformationCategory.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/StyledProposalInformationCategory.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/StyledRegion.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/StyledRegion.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/StyledRegion.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/StyledRegion.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/TextUtils.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/TextUtils.class similarity index 68% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/TextUtils.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/TextUtils.class index 9bec8c40..37972e0d 100644 Binary files a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/TextUtils.class and b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/TextUtils.class differ diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/TreeUtils.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/TreeUtils.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/TreeUtils.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/TreeUtils.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/UpdateReporter.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/UpdateReporter.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/UpdateReporter.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/UpdateReporter.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/VersionChangeEvent.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/VersionChangeEvent.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/misc/VersionChangeEvent.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/misc/VersionChangeEvent.class diff --git a/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/misc/BasicErrorListener.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/misc/BasicErrorListener.class new file mode 100644 index 00000000..9cb0965a Binary files /dev/null and b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/misc/BasicErrorListener.class differ diff --git a/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/misc/ParseResult.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/misc/ParseResult.class new file mode 100644 index 00000000..e06e4a92 Binary files /dev/null and b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/misc/ParseResult.class differ diff --git a/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/misc/ParseUtil.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/misc/ParseUtil.class new file mode 100644 index 00000000..92164f76 Binary files /dev/null and b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/misc/ParseUtil.class differ diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/preprocessor/Preprocessor.tokens b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/preprocessor/Preprocessor.tokens similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/parser/preprocessor/Preprocessor.tokens rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/preprocessor/Preprocessor.tokens diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/preprocessor/PreprocessorBaseListener.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/preprocessor/PreprocessorBaseListener.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/parser/preprocessor/PreprocessorBaseListener.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/preprocessor/PreprocessorBaseListener.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/preprocessor/PreprocessorBaseVisitor.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/preprocessor/PreprocessorBaseVisitor.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/parser/preprocessor/PreprocessorBaseVisitor.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/preprocessor/PreprocessorBaseVisitor.class diff --git a/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/preprocessor/PreprocessorErrorListener.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/preprocessor/PreprocessorErrorListener.class new file mode 100644 index 00000000..2392de68 Binary files /dev/null and b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/preprocessor/PreprocessorErrorListener.class differ diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/preprocessor/PreprocessorLexer.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/preprocessor/PreprocessorLexer.class similarity index 56% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/parser/preprocessor/PreprocessorLexer.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/preprocessor/PreprocessorLexer.class index 77bee9cf..43b422d3 100644 Binary files a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/preprocessor/PreprocessorLexer.class and b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/preprocessor/PreprocessorLexer.class differ diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/preprocessor/PreprocessorLexer.tokens b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/preprocessor/PreprocessorLexer.tokens similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/parser/preprocessor/PreprocessorLexer.tokens rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/preprocessor/PreprocessorLexer.tokens diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/preprocessor/PreprocessorListener.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/preprocessor/PreprocessorListener.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/parser/preprocessor/PreprocessorListener.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/preprocessor/PreprocessorListener.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParseListener$1.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParseListener$1.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParseListener$1.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParseListener$1.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParseListener$2.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParseListener$2.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParseListener$2.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParseListener$2.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParseListener.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParseListener.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParseListener.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParseListener.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParseResult.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParseResult.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParseResult.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParseResult.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParser$DefineContext.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParser$DefineContext.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParser$DefineContext.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParser$DefineContext.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParser$ErrorContext.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParser$ErrorContext.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParser$ErrorContext.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParser$ErrorContext.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParser$IncludeContext.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParser$IncludeContext.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParser$IncludeContext.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParser$IncludeContext.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParser$MacroArgsContext.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParser$MacroArgsContext.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParser$MacroArgsContext.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParser$MacroArgsContext.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParser$OtherContext.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParser$OtherContext.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParser$OtherContext.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParser$OtherContext.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParser$PrepIfContext.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParser$PrepIfContext.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParser$PrepIfContext.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParser$PrepIfContext.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParser$PreprocessorStatementContext.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParser$PreprocessorStatementContext.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParser$PreprocessorStatementContext.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParser$PreprocessorStatementContext.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParser$StartContext.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParser$StartContext.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParser$StartContext.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParser$StartContext.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParser$UndefineContext.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParser$UndefineContext.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParser$UndefineContext.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParser$UndefineContext.class diff --git a/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParser.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParser.class new file mode 100644 index 00000000..ec1fc4ab Binary files /dev/null and b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParser.class differ diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/preprocessor/PreprocessorVisitor.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/preprocessor/PreprocessorVisitor.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/parser/preprocessor/PreprocessorVisitor.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/preprocessor/PreprocessorVisitor.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/ERelativPosition.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/ERelativPosition.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/ERelativPosition.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/ERelativPosition.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQF.tokens b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQF.tokens similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQF.tokens rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQF.tokens diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFBaseListener.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFBaseListener.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFBaseListener.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFBaseListener.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFBaseVisitor.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFBaseVisitor.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFBaseVisitor.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFBaseVisitor.class diff --git a/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFLexer.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFLexer.class new file mode 100644 index 00000000..1539b412 Binary files /dev/null and b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFLexer.class differ diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFLexer.tokens b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFLexer.tokens similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFLexer.tokens rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFLexer.tokens diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFListener.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFListener.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFListener.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFListener.class diff --git a/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParseInformation.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParseInformation.class new file mode 100644 index 00000000..f5615767 Binary files /dev/null and b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParseInformation.class differ diff --git a/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParseResult.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParseResult.class new file mode 100644 index 00000000..de427c7b Binary files /dev/null and b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParseResult.class differ diff --git a/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$ArrayContext.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$ArrayContext.class new file mode 100644 index 00000000..0fe851bf Binary files /dev/null and b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$ArrayContext.class differ diff --git a/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$AssignmentContext.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$AssignmentContext.class new file mode 100644 index 00000000..2bcd2073 Binary files /dev/null and b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$AssignmentContext.class differ diff --git a/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$BinaryExpressionContext.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$BinaryExpressionContext.class new file mode 100644 index 00000000..c0e78dd8 Binary files /dev/null and b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$BinaryExpressionContext.class differ diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$CodeContext.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$CodeContext.class similarity index 51% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$CodeContext.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$CodeContext.class index e2bc0413..b3f839dd 100644 Binary files a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$CodeContext.class and b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$CodeContext.class differ diff --git a/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$CommonErrorContext.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$CommonErrorContext.class new file mode 100644 index 00000000..f846fa0c Binary files /dev/null and b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$CommonErrorContext.class differ diff --git a/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$ErrorContext.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$ErrorContext.class new file mode 100644 index 00000000..a3e83537 Binary files /dev/null and b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$ErrorContext.class differ diff --git a/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$InlineCodeContext.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$InlineCodeContext.class new file mode 100644 index 00000000..e6d024be Binary files /dev/null and b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$InlineCodeContext.class differ diff --git a/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$MacroArgumentContext.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$MacroArgumentContext.class new file mode 100644 index 00000000..5503ec39 Binary files /dev/null and b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$MacroArgumentContext.class differ diff --git a/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$MacroContext.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$MacroContext.class new file mode 100644 index 00000000..21d424dd Binary files /dev/null and b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$MacroContext.class differ diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$NularExpressionContext.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$NularExpressionContext.class similarity index 75% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$NularExpressionContext.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$NularExpressionContext.class index fd2ae983..34cd63b5 100644 Binary files a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$NularExpressionContext.class and b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$NularExpressionContext.class differ diff --git a/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$NularOperatorContext.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$NularOperatorContext.class new file mode 100644 index 00000000..dfb66415 Binary files /dev/null and b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$NularOperatorContext.class differ diff --git a/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$NumberContext.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$NumberContext.class new file mode 100644 index 00000000..6c563ff6 Binary files /dev/null and b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$NumberContext.class differ diff --git a/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$OperatorContext.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$OperatorContext.class new file mode 100644 index 00000000..7902a86f Binary files /dev/null and b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$OperatorContext.class differ diff --git a/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$ParenthesisContext.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$ParenthesisContext.class new file mode 100644 index 00000000..9cbc0565 Binary files /dev/null and b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$ParenthesisContext.class differ diff --git a/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$PrimaryExpressionContext.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$PrimaryExpressionContext.class new file mode 100644 index 00000000..6204b112 Binary files /dev/null and b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$PrimaryExpressionContext.class differ diff --git a/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$PunctuationContext.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$PunctuationContext.class new file mode 100644 index 00000000..422a1fc9 Binary files /dev/null and b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$PunctuationContext.class differ diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$StartContext.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$StartContext.class similarity index 55% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$StartContext.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$StartContext.class index 93b5bba5..ea937833 100644 Binary files a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$StartContext.class and b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$StartContext.class differ diff --git a/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$StatementContext.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$StatementContext.class new file mode 100644 index 00000000..687d3634 Binary files /dev/null and b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$StatementContext.class differ diff --git a/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$StringContext.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$StringContext.class new file mode 100644 index 00000000..b3301f10 Binary files /dev/null and b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$StringContext.class differ diff --git a/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$UnaryExpressionContext.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$UnaryExpressionContext.class new file mode 100644 index 00000000..605a4e5c Binary files /dev/null and b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser$UnaryExpressionContext.class differ diff --git a/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser.class new file mode 100644 index 00000000..deb841cb Binary files /dev/null and b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFParser.class differ diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFSyntaxProcessor.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFSyntaxProcessor.class similarity index 78% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFSyntaxProcessor.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFSyntaxProcessor.class index 84f787c6..b1102fc7 100644 Binary files a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFSyntaxProcessor.class and b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFSyntaxProcessor.class differ diff --git a/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFValidator.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFValidator.class new file mode 100644 index 00000000..550ccd10 Binary files /dev/null and b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFValidator.class differ diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFVisitor.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFVisitor.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFVisitor.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/SQFVisitor.class diff --git a/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/tests/SQFParserTest$1.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/tests/SQFParserTest$1.class new file mode 100644 index 00000000..a42e2ef5 Binary files /dev/null and b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/tests/SQFParserTest$1.class differ diff --git a/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/tests/SQFParserTest.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/tests/SQFParserTest.class new file mode 100644 index 00000000..d6cc3e70 Binary files /dev/null and b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/tests/SQFParserTest.class differ diff --git a/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/tests/TestScripts/VariableDeclaration.sqf b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/tests/TestScripts/VariableDeclaration.sqf new file mode 100644 index 00000000..87237edd --- /dev/null +++ b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/parser/sqf/tests/TestScripts/VariableDeclaration.sqf @@ -0,0 +1,39 @@ +_myTestVar1 = 5; +_myTestVar2 = getPos player; + +params [ + ["_parameter1", nil, [0]], + ["_parameter2", nil, [[], 4]], + ["", nil, []], + ["_parameter4", nil, ["", objNull]] +]; + +{ + GlobalTestVar = "Hello World"; + + if (isNil "Miau") then { + _innerVariable = ["Hello", "There", "You", "Stranger"]; + + for "_forVar" from 0 to 12 step 3 do { + for[{_innerForVar = 0},{_innerForVar < 5},{_innerForVar = _innerForVar + 1}] do { + + }; + }; + }; +} count []; + +private ["_private1", "_private2"]; + +private _private3 = "Ola"; +// _commentVar = 5; } +/* + * CommentVar = "Mammamia"; + * ( + */ + +hint Implicit1; +[] call Implicit2; + +_ifVar = if(Implicit3) then {"One"} else {"Two"}; + +nil; \ No newline at end of file diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/pluginManagement/ESQDevPlugin$1.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/pluginManagement/ESQDevPlugin$1.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/pluginManagement/ESQDevPlugin$1.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/pluginManagement/ESQDevPlugin$1.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/pluginManagement/ESQDevPlugin$2.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/pluginManagement/ESQDevPlugin$2.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/pluginManagement/ESQDevPlugin$2.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/pluginManagement/ESQDevPlugin$2.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/pluginManagement/ESQDevPlugin$3.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/pluginManagement/ESQDevPlugin$3.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/pluginManagement/ESQDevPlugin$3.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/pluginManagement/ESQDevPlugin$3.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/pluginManagement/ESQDevPlugin$4.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/pluginManagement/ESQDevPlugin$4.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/pluginManagement/ESQDevPlugin$4.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/pluginManagement/ESQDevPlugin$4.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/pluginManagement/ESQDevPlugin$5.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/pluginManagement/ESQDevPlugin$5.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/pluginManagement/ESQDevPlugin$5.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/pluginManagement/ESQDevPlugin$5.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/pluginManagement/ESQDevPlugin$6.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/pluginManagement/ESQDevPlugin$6.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/pluginManagement/ESQDevPlugin$6.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/pluginManagement/ESQDevPlugin$6.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/pluginManagement/ESQDevPlugin$7.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/pluginManagement/ESQDevPlugin$7.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/pluginManagement/ESQDevPlugin$7.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/pluginManagement/ESQDevPlugin$7.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/pluginManagement/ESQDevPlugin.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/pluginManagement/ESQDevPlugin.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/pluginManagement/ESQDevPlugin.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/pluginManagement/ESQDevPlugin.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/pluginManagement/ResourceManager.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/pluginManagement/ResourceManager.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/pluginManagement/ResourceManager.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/pluginManagement/ResourceManager.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/pluginManagement/SQDevEclipseEventManager$1$1.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/pluginManagement/SQDevEclipseEventManager$1$1.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/pluginManagement/SQDevEclipseEventManager$1$1.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/pluginManagement/SQDevEclipseEventManager$1$1.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/pluginManagement/SQDevEclipseEventManager$1.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/pluginManagement/SQDevEclipseEventManager$1.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/pluginManagement/SQDevEclipseEventManager$1.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/pluginManagement/SQDevEclipseEventManager$1.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/pluginManagement/SQDevEclipseEventManager.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/pluginManagement/SQDevEclipseEventManager.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/pluginManagement/SQDevEclipseEventManager.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/pluginManagement/SQDevEclipseEventManager.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/pluginManagement/SQDevPluginManager.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/pluginManagement/SQDevPluginManager.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/pluginManagement/SQDevPluginManager.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/pluginManagement/SQDevPluginManager.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/pluginManagement/VersionManager.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/pluginManagement/VersionManager.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/pluginManagement/VersionManager.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/pluginManagement/VersionManager.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/pluginManager/SQDevPluginManager.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/pluginManager/SQDevPluginManager.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/pluginManager/SQDevPluginManager.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/pluginManager/SQDevPluginManager.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/styles/BoldStyle.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/styles/BoldStyle.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/styles/BoldStyle.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/styles/BoldStyle.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/styles/CodeStyle.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/styles/CodeStyle.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/styles/CodeStyle.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/styles/CodeStyle.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/styles/SQDevStyle.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/styles/SQDevStyle.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/styles/SQDevStyle.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/styles/SQDevStyle.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/syntax/Syntax.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/syntax/Syntax.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/syntax/Syntax.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/syntax/Syntax.class diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/syntax/SyntaxElement.class b/plugin/Raven.SQDev.Misc/bin/raven/sqdev/syntax/SyntaxElement.class similarity index 100% rename from plugin/raven.sqdev.misc/bin/raven/sqdev/syntax/SyntaxElement.class rename to plugin/Raven.SQDev.Misc/bin/raven/sqdev/syntax/SyntaxElement.class diff --git a/plugin/raven.sqdev.misc/build.properties b/plugin/Raven.SQDev.Misc/build.properties similarity index 100% rename from plugin/raven.sqdev.misc/build.properties rename to plugin/Raven.SQDev.Misc/build.properties diff --git a/plugin/raven.sqdev.misc/plugin.xml b/plugin/Raven.SQDev.Misc/plugin.xml similarity index 100% rename from plugin/raven.sqdev.misc/plugin.xml rename to plugin/Raven.SQDev.Misc/plugin.xml diff --git a/plugin/raven.sqdev.misc/resources/icons/SQFCommandIcon.png b/plugin/Raven.SQDev.Misc/resources/icons/SQFCommandIcon.png similarity index 100% rename from plugin/raven.sqdev.misc/resources/icons/SQFCommandIcon.png rename to plugin/Raven.SQDev.Misc/resources/icons/SQFCommandIcon.png diff --git a/plugin/raven.sqdev.misc/resources/icons/SQFIcon.png b/plugin/Raven.SQDev.Misc/resources/icons/SQFIcon.png similarity index 100% rename from plugin/raven.sqdev.misc/resources/icons/SQFIcon.png rename to plugin/Raven.SQDev.Misc/resources/icons/SQFIcon.png diff --git a/plugin/raven.sqdev.misc/resources/icons/SQF_image.gif b/plugin/Raven.SQDev.Misc/resources/icons/SQF_image.gif similarity index 100% rename from plugin/raven.sqdev.misc/resources/icons/SQF_image.gif rename to plugin/Raven.SQDev.Misc/resources/icons/SQF_image.gif diff --git a/plugin/raven.sqdev.misc/resources/icons/StringTableIcon.png b/plugin/Raven.SQDev.Misc/resources/icons/StringTableIcon.png similarity index 100% rename from plugin/raven.sqdev.misc/resources/icons/StringTableIcon.png rename to plugin/Raven.SQDev.Misc/resources/icons/StringTableIcon.png diff --git a/plugin/raven.sqdev.misc/resources/icons/minusIcon.png b/plugin/Raven.SQDev.Misc/resources/icons/minusIcon.png similarity index 100% rename from plugin/raven.sqdev.misc/resources/icons/minusIcon.png rename to plugin/Raven.SQDev.Misc/resources/icons/minusIcon.png diff --git a/plugin/raven.sqdev.misc/resources/icons/parseTreeIcon.png b/plugin/Raven.SQDev.Misc/resources/icons/parseTreeIcon.png similarity index 100% rename from plugin/raven.sqdev.misc/resources/icons/parseTreeIcon.png rename to plugin/Raven.SQDev.Misc/resources/icons/parseTreeIcon.png diff --git a/plugin/raven.sqdev.misc/resources/icons/pluginInfoIcon.png b/plugin/Raven.SQDev.Misc/resources/icons/pluginInfoIcon.png similarity index 100% rename from plugin/raven.sqdev.misc/resources/icons/pluginInfoIcon.png rename to plugin/Raven.SQDev.Misc/resources/icons/pluginInfoIcon.png diff --git a/plugin/raven.sqdev.misc/resources/icons/plusIcon.png b/plugin/Raven.SQDev.Misc/resources/icons/plusIcon.png similarity index 100% rename from plugin/raven.sqdev.misc/resources/icons/plusIcon.png rename to plugin/Raven.SQDev.Misc/resources/icons/plusIcon.png diff --git a/plugin/raven.sqdev.misc/resources/icons/prj_obj.gif b/plugin/Raven.SQDev.Misc/resources/icons/prj_obj.gif similarity index 100% rename from plugin/raven.sqdev.misc/resources/icons/prj_obj.gif rename to plugin/Raven.SQDev.Misc/resources/icons/prj_obj.gif diff --git a/plugin/raven.sqdev.misc/resources/icons/removeIcon.png b/plugin/Raven.SQDev.Misc/resources/icons/removeIcon.png similarity index 100% rename from plugin/raven.sqdev.misc/resources/icons/removeIcon.png rename to plugin/Raven.SQDev.Misc/resources/icons/removeIcon.png diff --git a/plugin/raven.sqdev.misc/resources/icons/sqdevExportIcon.png b/plugin/Raven.SQDev.Misc/resources/icons/sqdevExportIcon.png similarity index 100% rename from plugin/raven.sqdev.misc/resources/icons/sqdevExportIcon.png rename to plugin/Raven.SQDev.Misc/resources/icons/sqdevExportIcon.png diff --git a/plugin/raven.sqdev.misc/resources/icons/sqdevFileIcon.png b/plugin/Raven.SQDev.Misc/resources/icons/sqdevFileIcon.png similarity index 100% rename from plugin/raven.sqdev.misc/resources/icons/sqdevFileIcon.png rename to plugin/Raven.SQDev.Misc/resources/icons/sqdevFileIcon.png diff --git a/plugin/raven.sqdev.misc/resources/icons/sqdevImportIcon.png b/plugin/Raven.SQDev.Misc/resources/icons/sqdevImportIcon.png similarity index 100% rename from plugin/raven.sqdev.misc/resources/icons/sqdevImportIcon.png rename to plugin/Raven.SQDev.Misc/resources/icons/sqdevImportIcon.png diff --git a/plugin/raven.sqdev.misc/resources/icons/sqdevWikiIcon.png b/plugin/Raven.SQDev.Misc/resources/icons/sqdevWikiIcon.png similarity index 100% rename from plugin/raven.sqdev.misc/resources/icons/sqdevWikiIcon.png rename to plugin/Raven.SQDev.Misc/resources/icons/sqdevWikiIcon.png diff --git a/plugin/raven.sqdev.misc/resources/sqf/SQFKeywords.txt b/plugin/Raven.SQDev.Misc/resources/sqf/SQFKeywords.txt similarity index 100% rename from plugin/raven.sqdev.misc/resources/sqf/SQFKeywords.txt rename to plugin/Raven.SQDev.Misc/resources/sqf/SQFKeywords.txt diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/activator/Activator.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/activator/Activator.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/activator/Activator.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/activator/Activator.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/constants/ISQDevColorConstants.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/constants/ISQDevColorConstants.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/constants/ISQDevColorConstants.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/constants/ISQDevColorConstants.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/constants/ProblemMessages.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/constants/ProblemMessages.java similarity index 78% rename from plugin/raven.sqdev.misc/src/raven/sqdev/constants/ProblemMessages.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/constants/ProblemMessages.java index 29e8c77b..bcc70ea8 100644 --- a/plugin/raven.sqdev.misc/src/raven/sqdev/constants/ProblemMessages.java +++ b/plugin/Raven.SQDev.Misc/src/raven/sqdev/constants/ProblemMessages.java @@ -9,10 +9,10 @@ * */ public class ProblemMessages { - + /** - * Creates the error message stating that the left hand argument of the - * given operator is missing + * Creates the error message stating that the left hand argument of the given + * operator is missing * * @param operatorName * The name of the operator @@ -21,10 +21,10 @@ public class ProblemMessages { public static final String missingArgLeft(String operatorName) { return "Missing argument on left-hand side at \"" + operatorName + "\""; } - + /** - * Creates the error message stating that the given operator is a nular - * operator and can therefore not be used with arguments + * Creates the error message stating that the given operator is a nular operator + * and can therefore not be used with arguments * * @param operatorName * The name of the operator @@ -33,7 +33,7 @@ public static final String missingArgLeft(String operatorName) { public static final String operatorIsNular(String operatorName) { return "\"'" + operatorName + "\" is a nular expression (No args!)"; } - + /** * Creates the error message stating that the operator was wrongly used as a * nular operator @@ -43,10 +43,9 @@ public static final String operatorIsNular(String operatorName) { * @return The created error message */ public static final String operatorIsNotNular(String operatorName) { - return "The operator \"" + operatorName - + "\" can not be used as a nular operator!"; + return "The operator \"" + operatorName + "\" can not be used as a nular operator!"; } - + /** * Creates the error message stating that the operator was wrongly used as a * binary operator @@ -56,10 +55,9 @@ public static final String operatorIsNotNular(String operatorName) { * @return The created error message */ public static final String operatorIsNotBinary(String operatorName) { - return "The operator \"" + operatorName - + "\" can not be used as a binary operator!"; + return "The operator \"" + operatorName + "\" can not be used as a binary operator!"; } - + /** * Creates the error message stating that the given operator is unknown * @@ -70,10 +68,10 @@ public static final String operatorIsNotBinary(String operatorName) { public static final String unknownOperator(String operatorName) { return "Unknown operator \"" + operatorName + "\""; } - + /** - * Creates the error message stating that the referenced local variable is - * not defined. + * Creates the error message stating that the referenced local variable is not + * defined. * * @param varName * The name of the variable @@ -82,22 +80,22 @@ public static final String unknownOperator(String operatorName) { public static final String undefinedLocalVariable(String varName) { return "Undefined local variable \"" + varName + "\""; } - + /** - * Gets the error message that the variable declarations couldn't be - * processed because an array was expected but not given + * Gets the error message that the variable declarations couldn't be processed + * because an array was expected but not given */ public static final String failedVarProcessingExpectedArray() { return "Can't process variable declaration because an array was expected!"; } - + /** * An error message stating that a variable name must no contain a blank! */ public static final String variableMayNotContainBlank() { return "A variable name may not contain a blank!"; } - + /** * An error message stating that there is a type mismatch * @@ -107,11 +105,10 @@ public static final String variableMayNotContainBlank() { * The type that has been obtained * @return The generated error message */ - public static final String expectedTypeButGotDifferent(String type, - String different) { + public static final String expectedTypeButGotDifferent(String type, String different) { return "Expected type \"" + type + "\" but got \"" + different + "\"!"; } - + /** * An error message stating that there is a type mismatch * @@ -122,10 +119,10 @@ public static final String expectedTypeButGotDifferent(String type, public static final String expectedType(String type) { return "Expected type \"" + type + "\"!"; } - + /** - * Gets the error message that a set of types was expected but a different - * set of types has been given + * Gets the error message that a set of types was expected but a different set + * of types has been given * * @param expected * The set of expected types @@ -133,13 +130,12 @@ public static final String expectedType(String type) { * The set of given types * @return the generated error message */ - public static final String ExpectedTypeButGot(EDataType[] expected, - EDataType[] got) { - StringBuilder builder = new StringBuilder("Expected "); - + public static final String expectedTypeButGot(EDataType[] expected, EDataType[] got) { + StringBuilder builder = new StringBuilder("Expected type "); + for (int i = 0; i < expected.length; i++) { EDataType currentType = expected[i]; - + if (i == 0) { builder.append("\"" + currentType + "\""); } else { @@ -150,12 +146,12 @@ public static final String ExpectedTypeButGot(EDataType[] expected, } } } - + builder.append(" but got "); - + for (int i = 0; i < got.length; i++) { EDataType currentType = got[i]; - + if (i == 0) { builder.append("\"" + currentType + "\""); } else { @@ -166,24 +162,24 @@ public static final String ExpectedTypeButGot(EDataType[] expected, } } } - + builder.append("!"); - + return builder.toString(); } - + /** * An error message stating that there is a type mismatch * * @param type - * The type that was expected (the first String representation - * will be used) + * The type that was expected (the first String representation will + * be used) * @return The generated error message */ public static final String expectedType(EDataType type) { return expectedType(type.toString()); } - + /** * An error message stating that there is a type mismatch * @@ -193,10 +189,10 @@ public static final String expectedType(EDataType type) { */ public static final String expectedTypes(EDataType[] types) { StringBuilder builder = new StringBuilder("Expected "); - + for (int i = 0; i < types.length; i++) { EDataType currentType = types[i]; - + if (i == 0) { builder.append("\"" + currentType + "\""); } else { @@ -207,33 +203,33 @@ public static final String expectedTypes(EDataType[] types) { } } } - + builder.append("!"); - + return builder.toString(); } - + /** * The error message that there can only be a local variable declared here */ public static final String canOnlyDeclareLocalVariable() { return "Only a local variable can be declared at this point!"; } - + /** * The error message that the given String may not be empty */ public static final String stringMayNotBeEmpty() { return "This String must not be empty!"; } - + /** * The error message that there is no whitespace allowed at that point */ public static final String noWhitespaceAllowed() { return "Whitespace is not allowed in this context!"; } - + /** * The error message stating that the given operator is case sensitive * @@ -241,28 +237,73 @@ public static final String noWhitespaceAllowed() { * The correct way to spell that operator */ public static final String isCaseSensitive(String correct) { - return "This operator is case-sensitive! It has to be \"" + correct - + "\"!"; + return "This operator is case-sensitive! It has to be \"" + correct + "\"!"; } - + /** * The error message stating that the reference is not a file */ public static final String referenceNotAFile() { return "Reference is not a file!"; } - + /** * The error message stating that there is a cycle in hierarchy */ public static final String cycleInHierarchy() { return "Cycle in hierarchy!"; } - + /** * The error message stating that only a bachslash can be used */ public static final String backslashHasToBeUsed() { return "Only a backslash can be used in this context"; } + + /** + * The error message stating that there is a missing semicolon + * + * @param at + * The ID after which the semicolon was expected + */ + public static final String missingSemicolon(String at) { + return "Missing ';' at \"" + at + "\""; + } + + /** + * The error message stating thath there is an unclosed opening character pair + * + * @param opener + * The opening character that doesnt get closed + */ + public static final String unclosedOpener(char opener) { + char openMark, closeMark; + + if (opener != '"') { + openMark = closeMark = '"'; + } else { + openMark = closeMark = '\''; + } + + return "Unclosed opening character " + openMark + opener + closeMark; + } + + /** + * The error message stating thath there is an invalid closing character + * + * @param opener + * The invalid closing character + */ + public static final String invalidClosingCharacter(char closer) { + char openMark, closeMark; + + if (closer != '"') { + openMark = closeMark = '"'; + } else { + openMark = closeMark = '\''; + } + + return "Invalid closing character " + openMark + closer + closeMark; + } } diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/constants/SQDevPreferenceConstants.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/constants/SQDevPreferenceConstants.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/constants/SQDevPreferenceConstants.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/constants/SQDevPreferenceConstants.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/constants/TextConstants.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/constants/TextConstants.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/constants/TextConstants.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/constants/TextConstants.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/exceptions/BadSyntaxException.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/exceptions/BadSyntaxException.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/exceptions/BadSyntaxException.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/exceptions/BadSyntaxException.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/exceptions/FailedAtCreatingFileException.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/exceptions/FailedAtCreatingFileException.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/exceptions/FailedAtCreatingFileException.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/exceptions/FailedAtCreatingFileException.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/exceptions/IllegalAccessStateException.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/exceptions/IllegalAccessStateException.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/exceptions/IllegalAccessStateException.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/exceptions/IllegalAccessStateException.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/exceptions/IllegalConstructorException.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/exceptions/IllegalConstructorException.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/exceptions/IllegalConstructorException.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/exceptions/IllegalConstructorException.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/exceptions/IllegalModificationException.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/exceptions/IllegalModificationException.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/exceptions/IllegalModificationException.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/exceptions/IllegalModificationException.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/exceptions/IllegalRGBSyntaxException.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/exceptions/IllegalRGBSyntaxException.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/exceptions/IllegalRGBSyntaxException.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/exceptions/IllegalRGBSyntaxException.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/exceptions/SQDevCollectionException.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/exceptions/SQDevCollectionException.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/exceptions/SQDevCollectionException.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/exceptions/SQDevCollectionException.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/exceptions/SQDevCoreException.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/exceptions/SQDevCoreException.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/exceptions/SQDevCoreException.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/exceptions/SQDevCoreException.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/exceptions/SQDevEditorException.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/exceptions/SQDevEditorException.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/exceptions/SQDevEditorException.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/exceptions/SQDevEditorException.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/exceptions/SQDevException.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/exceptions/SQDevException.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/exceptions/SQDevException.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/exceptions/SQDevException.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/exceptions/SQDevFileIsInvalidException.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/exceptions/SQDevFileIsInvalidException.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/exceptions/SQDevFileIsInvalidException.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/exceptions/SQDevFileIsInvalidException.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/exceptions/SQDevFileNoSuchAttributeException.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/exceptions/SQDevFileNoSuchAttributeException.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/exceptions/SQDevFileNoSuchAttributeException.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/exceptions/SQDevFileNoSuchAttributeException.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/exceptions/SQDevIllegalFileChangeException.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/exceptions/SQDevIllegalFileChangeException.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/exceptions/SQDevIllegalFileChangeException.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/exceptions/SQDevIllegalFileChangeException.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/exceptions/SQDevSyntaxException.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/exceptions/SQDevSyntaxException.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/exceptions/SQDevSyntaxException.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/exceptions/SQDevSyntaxException.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/exceptions/activator/Activator.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/exceptions/activator/Activator.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/exceptions/activator/Activator.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/exceptions/activator/Activator.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/fileSystemListener/AbstractFileSystemChangeListener.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/fileSystemListener/AbstractFileSystemChangeListener.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/fileSystemListener/AbstractFileSystemChangeListener.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/fileSystemListener/AbstractFileSystemChangeListener.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/fileSystemListener/EFileChangeType.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/fileSystemListener/EFileChangeType.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/fileSystemListener/EFileChangeType.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/fileSystemListener/EFileChangeType.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/fileSystemListener/FileSystemChangeAdapter.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/fileSystemListener/FileSystemChangeAdapter.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/fileSystemListener/FileSystemChangeAdapter.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/fileSystemListener/FileSystemChangeAdapter.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/fileSystemListener/FileSystemChangeEvent.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/fileSystemListener/FileSystemChangeEvent.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/fileSystemListener/FileSystemChangeEvent.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/fileSystemListener/FileSystemChangeEvent.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/fileSystemListener/FileSystemWatcher.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/fileSystemListener/FileSystemWatcher.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/fileSystemListener/FileSystemWatcher.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/fileSystemListener/FileSystemWatcher.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/infoCollection/SQFCommandCollector.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/infoCollection/SQFCommandCollector.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/infoCollection/SQFCommandCollector.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/infoCollection/SQFCommandCollector.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/infoCollection/SQFCommandPageProvider.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/infoCollection/SQFCommandPageProvider.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/infoCollection/SQFCommandPageProvider.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/infoCollection/SQFCommandPageProvider.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/infoCollection/base/ELocality.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/infoCollection/base/ELocality.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/infoCollection/base/ELocality.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/infoCollection/base/ELocality.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/infoCollection/base/Keyword.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/infoCollection/base/Keyword.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/infoCollection/base/Keyword.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/infoCollection/base/Keyword.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/infoCollection/base/KeywordList.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/infoCollection/base/KeywordList.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/infoCollection/base/KeywordList.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/infoCollection/base/KeywordList.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/infoCollection/base/SQFCommand.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/infoCollection/base/SQFCommand.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/infoCollection/base/SQFCommand.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/infoCollection/base/SQFCommand.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/infoCollection/base/SQFElement.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/infoCollection/base/SQFElement.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/infoCollection/base/SQFElement.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/infoCollection/base/SQFElement.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/infoCollection/base/Variable.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/infoCollection/base/Variable.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/infoCollection/base/Variable.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/infoCollection/base/Variable.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/interfaces/IAdditionalProposalInformation.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/interfaces/IAdditionalProposalInformation.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/interfaces/IAdditionalProposalInformation.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/interfaces/IAdditionalProposalInformation.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/interfaces/IEditorKeyHandler.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/interfaces/IEditorKeyHandler.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/interfaces/IEditorKeyHandler.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/interfaces/IEditorKeyHandler.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/interfaces/IFileSystemChangeListener.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/interfaces/IFileSystemChangeListener.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/interfaces/IFileSystemChangeListener.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/interfaces/IFileSystemChangeListener.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/interfaces/IKeywordListChangeListener.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/interfaces/IKeywordListChangeListener.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/interfaces/IKeywordListChangeListener.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/interfaces/IKeywordListChangeListener.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/interfaces/IKeywordProvider.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/interfaces/IKeywordProvider.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/interfaces/IKeywordProvider.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/interfaces/IKeywordProvider.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/interfaces/IMacroSupport.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/interfaces/IMacroSupport.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/interfaces/IMacroSupport.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/interfaces/IMacroSupport.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/interfaces/IManager.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/interfaces/IManager.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/interfaces/IManager.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/interfaces/IManager.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/interfaces/IMarkerSupport.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/interfaces/IMarkerSupport.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/interfaces/IMarkerSupport.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/interfaces/IMarkerSupport.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/interfaces/IPluginListener.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/interfaces/IPluginListener.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/interfaces/IPluginListener.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/interfaces/IPluginListener.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/interfaces/IProposalInformationCategory.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/interfaces/IProposalInformationCategory.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/interfaces/IProposalInformationCategory.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/interfaces/IProposalInformationCategory.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/interfaces/IReplaceTester.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/interfaces/IReplaceTester.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/interfaces/IReplaceTester.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/interfaces/IReplaceTester.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/interfaces/ISQFParseInformation.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/interfaces/ISQFParseInformation.java similarity index 60% rename from plugin/raven.sqdev.misc/src/raven/sqdev/interfaces/ISQFParseInformation.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/interfaces/ISQFParseInformation.java index 84c0e100..bc2950f6 100644 --- a/plugin/raven.sqdev.misc/src/raven/sqdev/interfaces/ISQFParseInformation.java +++ b/plugin/Raven.SQDev.Misc/src/raven/sqdev/interfaces/ISQFParseInformation.java @@ -14,29 +14,54 @@ * */ public interface ISQFParseInformation { - + /** * Gets the binary SQF operators */ public List getBinaryOperators(); - + + /** + * Gets the binary SQF operators keywords as string + */ + public List getBinaryKeywords(); + /** * Gets the unary SQF operators */ public List getUnaryOperators(); - + + /** + * Gets the unary SQF operators keywords as string + */ + public List getUnaryKeywords(); + /** * Gets the nular SQF operators */ public List getNularOperators(); - + + /** + * Gets the nular SQF operators keywords as string + */ + public List getNularKeywords(); + /** * Gets the configured magic variables */ public List getMagicVariables(); - + + /** + * Gets the configured magic variable-keywords as string + */ + public List getMagicVariableNames(); + /** * Gets the configured macros */ public List getMacros(); + + /** + * Gets the configured macro-keywords as string + */ + public List getMacroNames(); } diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/interfaces/ISaveable.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/interfaces/ISaveable.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/interfaces/ISaveable.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/interfaces/ISaveable.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/interfaces/IUpdateListener.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/interfaces/IUpdateListener.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/interfaces/IUpdateListener.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/interfaces/IUpdateListener.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/interfaces/IVersionListener.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/interfaces/IVersionListener.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/interfaces/IVersionListener.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/interfaces/IVersionListener.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/misc/AbstractAdditionalProposalInformation.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/AbstractAdditionalProposalInformation.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/misc/AbstractAdditionalProposalInformation.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/AbstractAdditionalProposalInformation.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/misc/AdvancedLineReader.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/AdvancedLineReader.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/misc/AdvancedLineReader.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/AdvancedLineReader.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/misc/ArrayUtils.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/ArrayUtils.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/misc/ArrayUtils.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/ArrayUtils.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/misc/CharacterPair.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/CharacterPair.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/misc/CharacterPair.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/CharacterPair.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/misc/ColorUtils.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/ColorUtils.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/misc/ColorUtils.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/ColorUtils.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/misc/DataTypeList.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/DataTypeList.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/misc/DataTypeList.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/DataTypeList.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/misc/EDataType.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/EDataType.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/misc/EDataType.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/EDataType.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/misc/FileUtil.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/FileUtil.java similarity index 75% rename from plugin/raven.sqdev.misc/src/raven/sqdev/misc/FileUtil.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/FileUtil.java index 5cbabda6..a70b5e6f 100644 --- a/plugin/raven.sqdev.misc/src/raven/sqdev/misc/FileUtil.java +++ b/plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/FileUtil.java @@ -1,14 +1,14 @@ package raven.sqdev.misc; -import java.io.BufferedReader; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; +import java.nio.file.CopyOption; +import java.nio.file.Files; +import java.nio.file.StandardCopyOption; import java.util.ArrayList; import java.util.List; @@ -25,7 +25,7 @@ * */ public class FileUtil { - + /** * Copies the given file into the given destination * @@ -41,63 +41,40 @@ public static File copyFile(File file, Path destination) { Assert.isTrue(file.isFile()); Assert.isTrue(destination.toFile().exists()); Assert.isTrue(destination.toFile().isDirectory()); - + File targetFile = destination.append(file.getName()).toFile(); - + if (targetFile.exists()) { SQDevInfobox info = new SQDevInfobox( - "Trying to copy the file \"" + file.getAbsolutePath() - + "\" to \"" + "Trying to copy the file \"" + file.getAbsolutePath() + "\" to \"" + destination.append(file.getName()).toOSString() + "\" but the file does already exist.\n\nDo you want to overwrite the file?", SWT.ICON_QUESTION | SWT.YES | SWT.NO); - + int result = info.open(); - + if (result == SWT.NO) { // abort copy process return null; } } - + try { - // create the file - targetFile.createNewFile(); - - BufferedReader reader = new BufferedReader(new FileReader(file)); - String content = ""; - String currentLine = ""; - - // get content - while ((currentLine = reader.readLine()) != null) { - content += currentLine + "\n"; - } - - if (content.length() > 0) { - // remove last newLine - content = content.substring(0, content.length() - 1); - - reader.close(); - - // transfer content - FileWriter writer = new FileWriter(targetFile); - - writer.write(content); - - writer.close(); - } - } catch (IOException e) { + Files.copy(file.toPath(), targetFile.toPath(), + new CopyOption[] { StandardCopyOption.REPLACE_EXISTING }); + } catch ( + + IOException e) { e.printStackTrace(); - - SQDevInfobox info = new SQDevInfobox( - "Failed at copying file \"" + targetFile.getName() + "\"", + + SQDevInfobox info = new SQDevInfobox("Failed at copying file \"" + targetFile.getName() + "\"", e); info.open(); } - + return targetFile; } - + /** * Copies the given folder and it's content into the given destination * @@ -113,21 +90,18 @@ public static File copyFolder(File folder, Path destination) { Assert.isTrue(folder.isDirectory()); Assert.isTrue(destination.toFile().exists()); Assert.isTrue(destination.toFile().isDirectory()); - + // create the folder File targetFolder = destination.append(folder.getName()).toFile(); - + if (targetFolder.exists()) { - SQDevInfobox info = new SQDevInfobox( - "Trying tocopy the folder \"" + folder.getAbsolutePath() - + "\" to \"" - + destination.append(folder.getName()).toOSString() - + "\" but there is already a folder with this name.\n\n" - + "Do you want to overwrite this folder?", - SWT.ICON_QUESTION | SWT.YES | SWT.NO); - + SQDevInfobox info = new SQDevInfobox("Trying tocopy the folder \"" + folder.getAbsolutePath() + + "\" to \"" + destination.append(folder.getName()).toOSString() + + "\" but there is already a folder with this name.\n\n" + + "Do you want to overwrite this folder?", SWT.ICON_QUESTION | SWT.YES | SWT.NO); + int result = info.open(); - + if (result == SWT.NO) { // abort copying process return null; @@ -135,20 +109,18 @@ public static File copyFolder(File folder, Path destination) { } else { targetFolder.mkdir(); } - + for (File currentFile : folder.listFiles()) { if (currentFile.isDirectory()) { - copyFolder(currentFile, - (Path) destination.append(folder.getName())); + copyFolder(currentFile, (Path) destination.append(folder.getName())); } else { - copyFile(currentFile, - (Path) destination.append(folder.getName())); + copyFile(currentFile, (Path) destination.append(folder.getName())); } } - + return targetFolder; } - + /** * Gets the content of the given file * @@ -161,13 +133,10 @@ public static File copyFolder(File folder, Path destination) { */ public static String getContent(File file) throws SQDevException { if (!file.exists()) { - throw new SQDevException( - "Failed at getting content of file \"" - + file.getAbsolutePath() + "\"", - new FileNotFoundException( - "The requested file does not exist")); + throw new SQDevException("Failed at getting content of file \"" + file.getAbsolutePath() + "\"", + new FileNotFoundException("The requested file does not exist")); } - + try { // BufferedReader reader = new BufferedReader(new FileReader(file)); // @@ -182,55 +151,55 @@ public static String getContent(File file) throws SQDevException { // reader.close(); // // return content; - + return readAll(new FileInputStream(file), (int) file.length()); - + } catch (IOException e) { - throw new SQDevException("Failed at getting content of file \"" - + file.getAbsolutePath() + "\"", e); + throw new SQDevException("Failed at getting content of file \"" + file.getAbsolutePath() + "\"", + e); } } - + /** * Reads the complete InputStream into a String. * * @param in * The InputStream to read from * @param size - * The length of the InputStream or -1 - * if unknown. + * The length of the InputStream or -1 if + * unknown. * @return The created String * @throws IOException */ public static String readAll(InputStream in, int size) throws IOException { byte[] initialBytes; - + if (size < 0) { initialBytes = new byte[in.available()]; } else { initialBytes = new byte[size]; } - + in.read(initialBytes); - + byte[] furtherBytes = new byte[0]; // check that all input has been read char currentChar = (char) -1; if ((currentChar = (char) in.read()) != (char) -1) { ByteArrayOutputStream out = new ByteArrayOutputStream(); out.write(currentChar); - + while ((currentChar = (char) in.read()) != (char) -1) { // read rest of the inputStream out.write(currentChar); } - + furtherBytes = out.toByteArray(); } - + return new String(initialBytes) + new String(furtherBytes); } - + /** * Reads the complete InputStream into a String. If the size of the * InputStream can be obtained @@ -245,7 +214,7 @@ public static String readAll(InputStream in, int size) throws IOException { public static String readAll(InputStream in) throws IOException { return readAll(in, -1); } - + /** * Gets all files in a directory and it's subdirectories * @@ -255,13 +224,13 @@ public static String readAll(InputStream in) throws IOException { */ public static List getAllSubFiles(File parentDir) { List files = new ArrayList(); - + if (parentDir.isFile()) { files.add(parentDir); - + return files; } - + if (parentDir.isDirectory()) { for (File subFile : parentDir.listFiles()) { if (subFile.isFile()) { @@ -273,8 +242,8 @@ public static List getAllSubFiles(File parentDir) { } } } - + return files; } - + } diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/misc/LineBuffer.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/LineBuffer.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/misc/LineBuffer.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/LineBuffer.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/misc/ListUtils.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/ListUtils.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/misc/ListUtils.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/ListUtils.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/misc/Macro.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/Macro.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/misc/Macro.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/Macro.java diff --git a/plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/Marker.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/Marker.java new file mode 100644 index 00000000..c0d6c877 --- /dev/null +++ b/plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/Marker.java @@ -0,0 +1,107 @@ +package raven.sqdev.misc; + +/** + * A container for all information associated with a marker + * + * @author Raven + * + */ +public class Marker { + + private String type; + private int offset; + private int length; + private String message; + private int severity; + + public Marker(String type, int offset, int length, String message, int severity) { + this.type = type; + this.offset = offset; + this.length = length; + this.message = message; + this.severity = severity; + } + + public String getType() { + return type; + } + + public int getOffset() { + return offset; + } + + public int getLength() { + return length; + } + + public int getSeverity() { + return severity; + } + + public String getMessage() { + return message; + } + + @Override + public boolean equals(Object other) { + if (!other.getClass().equals(getClass())) { + return false; + } + + Marker otherMarker = (Marker) other; + + if (otherMarker.getLength() != getLength()) { + return false; + } + if (!otherMarker.getMessage().equals(getMessage())) { + return false; + } + if (otherMarker.getOffset() != getOffset()) { + return false; + } + if (otherMarker.getSeverity() != getSeverity()) { + return false; + } + if (!otherMarker.getType().equals(getType())) { + return false; + } + + return true; + } + + /** + * Creates a message describing where this Marker and the given one differ from + * each other. Each difference is listed in a new line (starting at line 1) + * + * @param other + * The Marker to compare to + * @return The resulting message. If both markers are equal null is + * returned + */ + public String createDifferenceMessage(Marker other) { + if (this.equals(other)) { + return null; + } + + StringBuilder builder = new StringBuilder("Markers differ in the following points:\n"); + + if (!other.getType().equals(getType())) { + builder.append("\tType: Expected \"" + getType() + "\" but got \"" + other.getType() + "\"\n"); + } + if (other.getSeverity() != getSeverity()) { + builder.append("\tSeverity: Expected " + getSeverity() + " but got " + other.getSeverity() + "\n"); + } + if (other.getOffset() != getOffset()) { + builder.append("\tOffset: Expected " + getOffset() + " but got " + other.getOffset() + "\n"); + } + if (other.getLength() != getLength()) { + builder.append("\tLength: Expected " + getLength() + " but got " + other.getLength() + "\n"); + } + if (!other.getMessage().equals(getMessage())) { + builder.append("\tMessage: Expected \"" + getMessage() + "\" but got \"" + other.getMessage() + "\"\n"); + } + + return builder.toString(); + } + +} diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/misc/MultiPreferenceStore.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/MultiPreferenceStore.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/misc/MultiPreferenceStore.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/MultiPreferenceStore.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/misc/Pair.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/Pair.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/misc/Pair.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/Pair.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/misc/SQDev.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/SQDev.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/misc/SQDev.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/SQDev.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/misc/SQDevComposite.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/SQDevComposite.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/misc/SQDevComposite.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/SQDevComposite.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/misc/SQDevInfobox.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/SQDevInfobox.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/misc/SQDevInfobox.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/SQDevInfobox.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/misc/SQDevPreferenceUtil.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/SQDevPreferenceUtil.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/misc/SQDevPreferenceUtil.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/SQDevPreferenceUtil.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/misc/SQDevProjectNature.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/SQDevProjectNature.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/misc/SQDevProjectNature.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/SQDevProjectNature.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/misc/StringProposalInformationCategory.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/StringProposalInformationCategory.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/misc/StringProposalInformationCategory.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/StringProposalInformationCategory.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/misc/StyledProposalInformationCategory.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/StyledProposalInformationCategory.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/misc/StyledProposalInformationCategory.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/StyledProposalInformationCategory.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/misc/StyledRegion.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/StyledRegion.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/misc/StyledRegion.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/StyledRegion.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/misc/TextUtils.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/TextUtils.java similarity index 76% rename from plugin/raven.sqdev.misc/src/raven/sqdev/misc/TextUtils.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/TextUtils.java index 83014e34..01b65b3c 100644 --- a/plugin/raven.sqdev.misc/src/raven/sqdev/misc/TextUtils.java +++ b/plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/TextUtils.java @@ -10,6 +10,7 @@ import org.eclipse.core.runtime.Assert; +import raven.sqdev.constants.ProblemMessages; import raven.sqdev.constants.TextConstants; import raven.sqdev.exceptions.BadSyntaxException; import raven.sqdev.exceptions.SQDevException; @@ -21,7 +22,7 @@ * */ public class TextUtils { - + /** * Counts the occurence of a String in another String * @@ -33,20 +34,20 @@ public class TextUtils { */ public static int countMatches(String str, String match) { int counter = 0; - + while (str.contains(match)) { counter++; - + str = str.substring(str.indexOf(match) + match.length()); } - + return counter; } - + /** * Checks if the given name is valid.
- * A name is considered valid if it starts with a letter and then continues - * with either letters or digits or any character specified in + * A name is considered valid if it starts with a letter and then continues with + * either letters or digits or any character specified in * allowedChars.
* If you don't want any additional characters to be allowed just pass * null @@ -54,42 +55,40 @@ public static int countMatches(String str, String match) { * @param name * The name to validate * @param allowedChars - * A list of additional characters that are allowed for this - * name. May be null + * A list of additional characters that are allowed for this name. + * May be null */ - public static boolean isValidName(String name, - ArrayList allowedChars) { + public static boolean isValidName(String name, ArrayList allowedChars) { return whyIsInvalidName(name, allowedChars) == null; } - + /** * Checks for the reason the given name is invalid. * * @param name * The invalid name (mustn't be valid) * @param allowedChars - * A list of additional characters that are allowed for this - * name. May be null + * A list of additional characters that are allowed for this name. + * May be null * @return The error message explaining why the given name isn't valid. */ - public static String whyIsInvalidName(String name, - ArrayList allowedChars) { + public static String whyIsInvalidName(String name, ArrayList allowedChars) { if (name.isEmpty()) { return "A name must not be empty!"; } - + if (allowedChars == null) { // initialize empty list allowedChars = new ArrayList(); } - + char[] chars = name.toCharArray(); - + if (!Character.isLetter(chars[0])) { // name has to start with a letter return "A name has to start with a letter!"; } - + for (char currentChar : chars) { if (!Character.isLetterOrDigit(currentChar)) { // check if special character is allowed @@ -97,17 +96,16 @@ public static String whyIsInvalidName(String name, if (currentChar == ' ') { return "Blanks are not allowed in this name!"; } - - return "Invalid character '" + currentChar + "' in \"" - + name + "\"!"; + + return "Invalid character '" + currentChar + "' in \"" + name + "\"!"; } } } - + // all good with the given name return null; } - + /** * Checks if the given name is a valid project name * @@ -117,14 +115,14 @@ public static String whyIsInvalidName(String name, */ public static boolean isValidFileName(String name) { ArrayList allowedChars = new ArrayList(); - + for (char currentChar : TextConstants.ALLOWED_SPECIAL_CHARACTER_FILENAME) { allowedChars.add(currentChar); } - + return isValidName(name, allowedChars); } - + /** * Get the error code for why the name isn't valid * @@ -134,14 +132,14 @@ public static boolean isValidFileName(String name) { */ public static String whyIsInvalidFileName(String name) { ArrayList allowedChars = new ArrayList(); - + for (char currentChar : TextConstants.ALLOWED_SPECIAL_CHARACTER_FILENAME) { allowedChars.add(currentChar); } - + return whyIsInvalidName(name, allowedChars); } - + /** * Checks if the given character is a bracket * @@ -154,10 +152,10 @@ public static boolean isBracket(char c) { return true; } } - + return false; } - + /** * Checks whether the given character can be part of a word * @@ -168,64 +166,63 @@ public static boolean isWordPart(char c) { if (Character.isLetterOrDigit(c)) { return true; } - + // check for valid special characters for (char currentChar : TextConstants.SPECIAL_WORD_CHARACTERS) { if (c == currentChar) { return true; } } - + return false; } - + /** - * Gets the different areas from an input such as words(seperated - * whitespace) or bracket areas (encapsulated in brackets). + * Gets the different areas from an input such as words(seperated whitespace) or + * bracket areas (encapsulated in brackets). * * @param input * The input whose areas should be obtained * @param repair - * Indicates whether this function should try to repair the input - * in case the syntax is not correct (most commonly this applies - * to inserting closing brackets at the end of the input) + * Indicates whether this function should try to repair the input in + * case the syntax is not correct (most commonly this applies to + * inserting closing brackets at the end of the input) * @return The found areas or null if an error occured * @throws BadSyntaxException * If a bracket area is missing it's closing bracket */ - public static String[] getTextAreas(String input, boolean repair) - throws BadSyntaxException { + public static String[] getTextAreas(String input, boolean repair) throws BadSyntaxException { Assert.isNotNull(input); - + if (input.isEmpty()) { // empty string results in no areas return new String[0]; } - + StringReader reader = new StringReader(input); - + char currentChar; int currentCharInt; - + List areaList = new ArrayList(); ByteArrayOutputStream characterStream = new ByteArrayOutputStream(); - + /** * A bracket pair that might be found in the input */ CharacterPair bracketPair = null; /** - * How often trailing opener of the same bracketPair occured before the - * last closer (wrapped brackets) + * How often trailing opener of the same bracketPair occured before the last + * closer (wrapped brackets) */ int remainingOpenerToBeClosed = 0; - + try { while ((currentCharInt = reader.read()) > 0) { boolean flush = false; - + currentChar = (char) currentCharInt; - + if (isWordPart(currentChar)) { // simply append characterStream.write(currentChar); @@ -243,21 +240,17 @@ public static String[] getTextAreas(String input, boolean repair) if (isBracket(currentChar)) { if (bracketPair == null) { // get the bracket pair - bracketPair = CharacterPair - .getDefinedPairFor(currentChar); - + bracketPair = CharacterPair.getDefinedPairFor(currentChar); + if (bracketPair.getOpener() == currentChar) { // manually flush if (characterStream.size() > 0) { - areaList.add( - characterStream.toString()); + areaList.add(characterStream.toString()); characterStream.reset(); } } else { // There is a closing bracket whose starting - throw new BadSyntaxException( - "Missing opening bracket " - + bracketPair.getOpener()); + throw new BadSyntaxException("Missing opening bracket " + bracketPair.getOpener()); } } else { // check if the closer has been reached @@ -265,15 +258,14 @@ public static String[] getTextAreas(String input, boolean repair) // check for wrapping if (remainingOpenerToBeClosed == 0) { flush = true; - + // reset bracket pair bracketPair = null; } else { remainingOpenerToBeClosed--; } } else { - if (bracketPair - .getOpener() == currentChar) { + if (bracketPair.getOpener() == currentChar) { // beginning wrap remainingOpenerToBeClosed++; } @@ -281,7 +273,7 @@ public static String[] getTextAreas(String input, boolean repair) // it -> no wrapped areas } } - + // add bracket to stream characterStream.write(currentChar); } else { @@ -290,45 +282,43 @@ public static String[] getTextAreas(String input, boolean repair) } } } - + if (flush && characterStream.size() > 0) { // add stream as an area areaList.add(characterStream.toString()); - + // reset stream characterStream.reset(); } } - + if (bracketPair != null) { // one more bracket has to be closed remainingOpenerToBeClosed++; - + // we are still in a warped area -> missing closing character - if (remainingOpenerToBeClosed > 0 && repair - && characterStream.size() > 0) { + if (remainingOpenerToBeClosed > 0 && repair && characterStream.size() > 0) { // "repair" the input by inserting respective amount of // closing brackets String closer = ""; - + while (remainingOpenerToBeClosed > 0) { closer += bracketPair.getCloser(); - + remainingOpenerToBeClosed--; } - + // append it to buffer characterStream.write(closer.getBytes()); } else { - throw new BadSyntaxException("Incomplete CharacterPair " - + bracketPair + " in input!"); + throw new BadSyntaxException("Incomplete CharacterPair " + bracketPair + " in input!"); } } - + if (characterStream.size() > 0) { areaList.add(characterStream.toString()); } - + return areaList.toArray(new String[areaList.size()]); } catch (IOException e) { try { @@ -336,15 +326,15 @@ public static String[] getTextAreas(String input, boolean repair) throw new SQDevException("Failed at retrieving areas", e); } catch (SQDevException e1) { e1.printStackTrace(); - + return null; } } } - + /** - * Gets the different areas from an input such as words(seperated by blank - * or newLine) or bracket areas (encapsulated in brackets). + * Gets the different areas from an input such as words(seperated by blank or + * newLine) or bracket areas (encapsulated in brackets). * * @param input * The input whose areas should be obtained @@ -352,14 +342,13 @@ public static String[] getTextAreas(String input, boolean repair) * @throws BadSyntaxException * If a bracket area is missing it's closing bracket */ - public static String[] getTextAreas(String input) - throws BadSyntaxException { + public static String[] getTextAreas(String input) throws BadSyntaxException { return getTextAreas(input, false); } - + /** - * Checks whether the given input conists of only one text area. That is - * when getTextAreas() returns an array of size 1 + * Checks whether the given input conists of only one text area. That is when + * getTextAreas() returns an array of size 1 * * @param input * The input to check @@ -368,20 +357,19 @@ public static String[] getTextAreas(String input) * * @see #getTextAreas(String) */ - public static boolean isSingleTextArea(String input) - throws BadSyntaxException { + public static boolean isSingleTextArea(String input) throws BadSyntaxException { input = input.trim(); - + if (input.isEmpty()) { return true; } - + return getTextAreas(input).length == 1; } - + /** - * Checks whether the given String starts with any of the entries of the - * given collection + * Checks whether the given String starts with any of the entries of the given + * collection * * @param str * The STring to check @@ -389,11 +377,10 @@ public static boolean isSingleTextArea(String input) * The Collection of prefixes to check * @return Whether the String starts with any prefix of the given collection */ - public static boolean startsWithAny(String str, - Collection prefixes) { + public static boolean startsWithAny(String str, Collection prefixes) { return startsWithWhich(str, prefixes) != null; } - + /** * Gets the first prefix the given String is starting with * @@ -401,37 +388,32 @@ public static boolean startsWithAny(String str, * The String to check * @param prefixes * The prefixes to check - * @return The first matching prefix or null if none could be - * found + * @return The first matching prefix or null if none could be found */ - public static String startsWithWhich(String str, - Collection prefixes) { + public static String startsWithWhich(String str, Collection prefixes) { for (String currentPrefix : prefixes) { if (str.startsWith(currentPrefix)) { return currentPrefix; } } - + return null; } - + /** * Finds unbalanced brackets in the given input * * @param input * The input to check - * @return A list of Pairs containing the offset of the - * offending bracket and the error message for it, or - * null if the brackets are balanced. + * @return A list of Pairs containing the offset of the offending + * bracket and the error message for it, or null if the + * brackets are balanced. */ - public static List> findUnbalancedBrackets( - String input) { - return findUnbalancedCharacterPairs(input, - new CharacterPair[] { CharacterPair.CURLY_BRACKETS, - CharacterPair.ROUND_BRACKETS, - CharacterPair.SQUARE_BRACKETS }); + public static List> findUnbalancedBrackets(String input) { + return findUnbalancedCharacterPairs(input, new CharacterPair[] { CharacterPair.CURLY_BRACKETS, + CharacterPair.ROUND_BRACKETS, CharacterPair.SQUARE_BRACKETS }); } - + /** * Finds unbalanced characters belonging to the set of given CharacterPairs * @@ -439,68 +421,52 @@ public static List> findUnbalancedBrackets( * The input to check * @param set * The set of CharacterPairs to check - * @return A list of Pairs containing the offset of the - * offending character and the error message for it. + * @return A list of Pairs containing the offset of the offending + * character and the error message for it. */ - public static List> findUnbalancedCharacterPairs( - String input, CharacterPair[] set) { - + public static List> findUnbalancedCharacterPairs(String input, CharacterPair[] set) { + final Stack> pairStack = new Stack>(); final List> errorPairList = new ArrayList>(); - + for (int i = 0; i < input.length(); i++) { char currentChar = input.charAt(i); - - CharacterPair pair = CharacterPair.getDefinedPairFor(currentChar, - set); - + + CharacterPair pair = CharacterPair.getDefinedPairFor(currentChar, set); + if (pair != null) { - if(pair.getOpener() == pair.getCloser()) { + if (pair.getOpener() == pair.getCloser()) { // handle characterPairs whos opener are identical to their closer - if(!pairStack.isEmpty() && pairStack.peek().getFirst().equals(pair)) { + if (!pairStack.isEmpty() && pairStack.peek().getFirst().equals(pair)) { pairStack.pop(); } else { pairStack.push(new Pair(pair, i)); } - + continue; } - + if (pair.getOpener() == currentChar) { pairStack.push(new Pair(pair, i)); } else { - if (!pairStack.isEmpty() && pairStack.peek().getFirst() - .getCloser() == currentChar) { + if (!pairStack.isEmpty() && pairStack.peek().getFirst().getCloser() == currentChar) { // balances the top entry of the stack pairStack.pop(); } else { // invalid closing character - CharacterPair quotes = (currentChar == '"') - ? CharacterPair.SINGLE_QUOTATION_MARKS - : CharacterPair.DOUBLE_QUOTATION_MARKS; - - errorPairList.add(new Pair(i, - "Invalid closing character " - + quotes.getOpener() + currentChar - + quotes.getCloser())); + errorPairList.add( + new Pair(i, ProblemMessages.invalidClosingCharacter(currentChar))); } } } } - + // process all unclosed characters for (Pair currentPair : pairStack) { - CharacterPair quotes = (currentPair.getFirst() - .equals(CharacterPair.DOUBLE_QUOTATION_MARKS)) - ? CharacterPair.SINGLE_QUOTATION_MARKS - : CharacterPair.DOUBLE_QUOTATION_MARKS; - errorPairList.add(new Pair(currentPair.getSecond(), - "Unclosed opening character " + quotes.getOpener() - + currentPair.getFirst().getOpener() - + quotes.getCloser())); + ProblemMessages.unclosedOpener(currentPair.getFirst().getOpener()))); } - + return errorPairList; } } diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/misc/TreeUtils.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/TreeUtils.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/misc/TreeUtils.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/TreeUtils.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/misc/UpdateReporter.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/UpdateReporter.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/misc/UpdateReporter.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/UpdateReporter.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/misc/VersionChangeEvent.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/VersionChangeEvent.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/misc/VersionChangeEvent.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/misc/VersionChangeEvent.java diff --git a/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/misc/BasicErrorListener.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/misc/BasicErrorListener.java new file mode 100644 index 00000000..73acc64f --- /dev/null +++ b/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/misc/BasicErrorListener.java @@ -0,0 +1,84 @@ +package raven.sqdev.parser.misc; + +import org.antlr.v4.runtime.BaseErrorListener; +import org.antlr.v4.runtime.RecognitionException; +import org.antlr.v4.runtime.Recognizer; +import org.antlr.v4.runtime.Token; +import org.eclipse.core.resources.IMarker; + +/** + * A basic error listener implementation that can be added to an ANTLR parser + * that will create error markers on the editor for every syntax error reported + * by the parser + * + * @author Raven + * + */ +public class BasicErrorListener extends BaseErrorListener { + + /** + * The result of this parsing + */ + protected ParseResult result; + + /** + * Create an instance of this error listener + */ + public BasicErrorListener() { + result = new ParseResult(); + } + + @Override + public void syntaxError(Recognizer recognizer, Object offendingSymbol, int line, + int charPositionInline, String msg, RecognitionException e) { + if (line < 1 || !(offendingSymbol instanceof Token)) { + return; + } + + Token offendingToken = (Token) offendingSymbol; + + int length = (offendingToken.getType() == Token.EOF) ? 0 : offendingToken.getText().length(); + + reportError(offendingToken.getStartIndex(), length, msg); + } + + /** + * This method is responsible for reporting the given information in form of a + * Marker. + * + * @param type + * type The marker's type + * @param offset + * The marker's offset + * @param length + * The marker's length + * @param message + * The marker's message + * @param severity + * The marker's severity + */ + protected void reportMarker(String type, int offset, int length, String message, int severity) { + result.createMarker(type, offset, length, message, severity); + } + + /** + * Reports an error to the respective editor + * + * @param offset + * The offset of the error + * @param length + * The length of the error + * @param msg + * The error message + */ + public void reportError(int offset, int length, String msg) { + reportMarker(IMarker.PROBLEM, offset, length, msg, IMarker.SEVERITY_ERROR); + } + + /** + * Gets the parse result + */ + public ParseResult getParseResult() { + return result; + } +} diff --git a/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/misc/ParseResult.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/misc/ParseResult.java new file mode 100644 index 00000000..4019dc4d --- /dev/null +++ b/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/misc/ParseResult.java @@ -0,0 +1,146 @@ +package raven.sqdev.parser.misc; + +import java.util.ArrayList; +import java.util.List; + +import org.antlr.v4.runtime.tree.ParseTree; + +import raven.sqdev.interfaces.IMarkerSupport; +import raven.sqdev.misc.Marker; + +public class ParseResult implements IMarkerSupport { + + /** + * The list of reported markers + */ + private List markers; + /** + * The actual parse-tree + */ + private ParseTree tree; + + + public ParseResult() { + markers = new ArrayList(); + } + + /** + * Adds a new marker to this parse result + * + * @param type + * The marker's type + * @param offset + * The marker's offset + * @param length + * The marker's length + * @param message + * The marker's message + * @param severity + * The marker's severity + */ + public void addMarker(String type, int offset, int length, String message, int severity) { + markers.add(new Marker(type, offset, length, message, severity)); + } + + /** + * Gets all the markers that are a result of the respective parsing + */ + public List getMarkers() { + return markers; + } + + /** + * Applies the respective markers to the given MarkerSupport + * + * @param support + * The MarkerSupport to add the markers to + */ + public void applyMarkersTo(IMarkerSupport support) { + for (Marker currentMarker : markers) { + support.createMarker(currentMarker.getType(), currentMarker.getOffset(), + currentMarker.getLength(), currentMarker.getMessage(), currentMarker.getSeverity()); + } + } + + /** + * Merges the given parse result into this one.
+ * + * NOTE: If both results have a parseTree set, then the one of this + * parseResult will be kept! + * + * @param other + * The other parse result to merge into this one + */ + public void mergeWith(ParseResult other) { + other.merging(); + + markers.addAll(other.getMarkers()); + + if (tree == null) { + tree = other.getParseTree(); + } + } + + /** + * Dummy method used for compability reasons. Reroutes all calls to + * {@link #addMarker(String, int, int, String, int)} + */ + @Override + public void createMarker(String type, int offset, int length, String message, int severity) { + // dummy method for compability + addMarker(type, offset, length, message, severity); + } + + /** + * Sets the parseTree of this result + * + * @param tree + * The ParseTree representing the parsed input + */ + public void setParseTree(ParseTree tree) { + this.tree = tree; + } + + /** + * Clears the currently stored parseTree + */ + public void clearParseTree() { + tree = null; + } + + /** + * Checks whether this result does provide a parseTree + */ + public final boolean providesParseTree() { + return tree != null; + } + + /** + * Gets the parseTree representing the parsed input. May be null + */ + public ParseTree getParseTree() { + return tree; + } + + /** + * A hook that gets called if this object is being merged into another one + */ + protected void merging() { + // Do nothing + } + + /** + * Gets a list of marker types that have been reported + */ + public List getMarkerTypes() { + List names = new ArrayList(); + + for (Marker current : getMarkers()) { + if (!names.contains(current.getType())) { + names.add(current.getType()); + } + } + + return names; + } +} diff --git a/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/misc/ParseUtil.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/misc/ParseUtil.java new file mode 100644 index 00000000..b5321504 --- /dev/null +++ b/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/misc/ParseUtil.java @@ -0,0 +1,231 @@ +package raven.sqdev.parser.misc; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import org.antlr.v4.runtime.ANTLRInputStream; +import org.antlr.v4.runtime.BufferedTokenStream; +import org.antlr.v4.runtime.CommonTokenStream; +import org.antlr.v4.runtime.atn.PredictionMode; +import org.antlr.v4.runtime.tree.ParseTree; +import org.antlr.v4.runtime.tree.ParseTreeWalker; +import org.eclipse.core.runtime.Assert; +import org.eclipse.core.runtime.IPath; + +import raven.sqdev.infoCollection.base.Variable; +import raven.sqdev.interfaces.ISQFParseInformation; +import raven.sqdev.misc.CharacterPair; +import raven.sqdev.misc.Pair; +import raven.sqdev.misc.TextUtils; +import raven.sqdev.parser.preprocessor.PreprocessorErrorListener; +import raven.sqdev.parser.preprocessor.PreprocessorLexer; +import raven.sqdev.parser.preprocessor.PreprocessorParseListener; +import raven.sqdev.parser.preprocessor.PreprocessorParseResult; +import raven.sqdev.parser.preprocessor.PreprocessorParser; +import raven.sqdev.parser.sqf.SQFLexer; +import raven.sqdev.parser.sqf.SQFParseInformation; +import raven.sqdev.parser.sqf.SQFParseResult; +import raven.sqdev.parser.sqf.SQFParser; +import raven.sqdev.parser.sqf.SQFValidator; + +/** + * A class containing utility methods for parsing processes + * + * @author Raven + * + */ +public class ParseUtil { + + /** + * Parses the given input assuming that the input is SQF code + * + * @param input + * The input to parse + * @param parseInfo + * The necessary parseInformation + * @return The parseResult containing all necessary information about the + * parsing (including the parseTree) + */ + public static final SQFParseResult parseSQF(String input, ISQFParseInformation parseInfo) { + SQFParseResult result = new SQFParseResult(); + + BasicErrorListener listener = new BasicErrorListener(); + + ANTLRInputStream in = new ANTLRInputStream(input); + + SQFLexer lexer = new SQFLexer(in, parseInfo.getBinaryKeywords(), parseInfo.getUnaryKeywords(), + parseInfo.getMacroNames()); + lexer.removeErrorListeners(); + lexer.addErrorListener(listener); + + CommonTokenStream tokenStream = new CommonTokenStream(lexer); + + SQFParser parser = new SQFParser(tokenStream); + parser.removeErrorListeners(); + parser.addErrorListener(listener); + + result.setParserRuleNames(Arrays.asList(parser.getRuleNames())); + + // parse with SLL(*) + parser.getInterpreter().setPredictionMode(PredictionMode.SLL); + + ParseTree tree = parser.start(); + + if (listener.getParseResult().getMarkers().size() > 0) { + // check if unbalanced brackets are the problem + List> unbalancedCharacters = TextUtils.findUnbalancedCharacterPairs(input, + new CharacterPair[] { CharacterPair.ROUND_BRACKETS, CharacterPair.SQUARE_BRACKETS, + CharacterPair.CURLY_BRACKETS, CharacterPair.DOUBLE_QUOTATION_MARKS, + CharacterPair.SINGLE_QUOTATION_MARKS }); + + if (!unbalancedCharacters.isEmpty()) { + // There are unbalanced characters -> make sure they are not + // a comment or a String + tokenStream.reset(); + + List> unbalancedPairsToReport = new ArrayList>(); + + for (org.antlr.v4.runtime.Token currentToken : tokenStream.getTokens()) { + if (currentToken.getChannel() == org.antlr.v4.runtime.Token.HIDDEN_CHANNEL + || currentToken.getType() == SQFParser.STRING) { + // Ignore hidden Tokens + continue; + } else { + for (Pair currentPair : unbalancedCharacters) { + if (currentPair.getFirst() >= currentToken.getStartIndex()) { + if (currentPair.getFirst() > currentToken.getStopIndex()) { + // can only be considered when looking + // at the next Token + break; + } else { + // The offedning token is in a relevant + // part -> must be reported + unbalancedPairsToReport.add(currentPair); + } + } + } + } + } + + if (unbalancedPairsToReport.size() > 0) { + // clear previous errors as unbalanced braces mess up too much for the previous + // errors to be useful + listener.getParseResult().getMarkers().clear(); + } + + for (Pair currentPair : unbalancedPairsToReport) { + listener.reportError(currentPair.getFirst(), 1, currentPair.getSecond()); + } + } + } + + result.setParseTree(tree); + result.setTokenStream(tokenStream); + result.mergeWith(listener.getParseResult()); + + return result; + } + + /** + * Validates the given ParseTree assuming that it refers to SQF code + * + * @param tree + * The tree to validate + * @param tokenStream + * The tokenStream that has been used to create the tree + * @param info + * The necessary ParseInformation + * @return The result of the validation + */ + public static final SQFParseResult validateSQF(ParseTree tree, BufferedTokenStream tokenStream, + ISQFParseInformation info) { + Assert.isNotNull(tokenStream); + Assert.isNotNull(tree); + Assert.isNotNull(info); + + ParseTreeWalker walker = new ParseTreeWalker(); + + SQFValidator validator = new SQFValidator(info, tokenStream); + + walker.walk(validator, tree); + + return validator.getParseResult(); + } + + /** + * Parses and validates the given input as SQF code + * + * @param input + * The input to process + * @param parseInfo + * The {@link SQFParseInformation}} for this parsing process + * @return The {@link SQFParseResult} of this parsing and validating + */ + public static final SQFParseResult parseAndValidateSQF(String input, ISQFParseInformation parseInfo) { + SQFParseResult result = parseSQF(input, parseInfo); + result.mergeWith(validateSQF(result.getParseTree(), result.getTokenStream(), parseInfo)); + + return result; + } + + /** + * Gets the default magic variables that are present in SQF code + */ + public static final List getDefaultMagicVars() { + List magicVars = new ArrayList(); + magicVars.add(new Variable("_this", + "This variable is available inside of functions and contains the parameters given to it.")); + magicVars.add(new Variable("_fnc_scriptName", + "A String containing the function's name. Only awaylable when the function has " + + "been compiled via CfgFunctions.")); + magicVars.add(new Variable("_fnc_scriptNameParent", + "A String containing the function's parent's name. Only awaylable when the function has " + + "been compiled via CfgFunctions.")); + magicVars.add(new Variable("_x", + "References the current object oin the iteration. Available inside count or forEach loops")); + magicVars.add(new Variable("_forEachIndex", + "References the index of the current object in the iteration. Only available in a " + "forEach loop.")); + magicVars.add(new Variable("_thisEventHandler", + "References the current event handler. Only available inside an EventHandler")); + + return magicVars; + } + + /** + * Preprocesses the given input + * + * @param input + * The input to preprocess + * @param origin + * The origin-path of the given content. This is used in order to + * resolve relative paths + * @return The result of the preprocessing + */ + public static final PreprocessorParseResult parseAndValidatePreprocess(String input, IPath origin) { + ANTLRInputStream prepIn = new ANTLRInputStream(input); + + PreprocessorLexer prepLexer = new PreprocessorLexer(prepIn); + + CommonTokenStream prepTokens = new CommonTokenStream(prepLexer); + + PreprocessorParser prepParser = new PreprocessorParser(prepTokens); + + prepParser.removeErrorListeners(); + PreprocessorErrorListener errorListener = new PreprocessorErrorListener(0); + prepParser.addErrorListener(errorListener); + + ParseTreeWalker prepWalker = new ParseTreeWalker(); + + PreprocessorParseListener prepListener = new PreprocessorParseListener(origin); + + prepWalker.walk(prepListener, prepParser.start()); + + + PreprocessorParseResult result = prepListener.getParseResult(); + + result.mergeWith(errorListener.getParseResult()); + + return result; + } +} diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/parser/preprocessor/Preprocessor.tokens b/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/preprocessor/Preprocessor.tokens similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/parser/preprocessor/Preprocessor.tokens rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/preprocessor/Preprocessor.tokens diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/parser/preprocessor/PreprocessorBaseListener.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/preprocessor/PreprocessorBaseListener.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/parser/preprocessor/PreprocessorBaseListener.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/preprocessor/PreprocessorBaseListener.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/parser/preprocessor/PreprocessorBaseVisitor.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/preprocessor/PreprocessorBaseVisitor.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/parser/preprocessor/PreprocessorBaseVisitor.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/preprocessor/PreprocessorBaseVisitor.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/parser/preprocessor/PreprocessorErrorListener.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/preprocessor/PreprocessorErrorListener.java similarity index 57% rename from plugin/raven.sqdev.misc/src/raven/sqdev/parser/preprocessor/PreprocessorErrorListener.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/preprocessor/PreprocessorErrorListener.java index b71dc32e..ec845df2 100644 --- a/plugin/raven.sqdev.misc/src/raven/sqdev/parser/preprocessor/PreprocessorErrorListener.java +++ b/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/preprocessor/PreprocessorErrorListener.java @@ -11,12 +11,8 @@ public class PreprocessorErrorListener extends BasicErrorListener { * The offset from where the parsing will be started */ private int initialOffset; - /** - * The result of this parsing - */ - protected PreprocessorParseResult result; - - + + /** * Creates a new instance of this class * @@ -25,39 +21,21 @@ public class PreprocessorErrorListener extends BasicErrorListener { */ public PreprocessorErrorListener(int initialOffset) { super(); - - this.result = new PreprocessorParseResult(); - + this.initialOffset = initialOffset; } - + @Override - public void syntaxError(Recognizer recognizer, Object offendingSymbol, - int line, int charPositionInline, String msg, - RecognitionException e) { + public void syntaxError(Recognizer recognizer, Object offendingSymbol, int line, + int charPositionInline, String msg, RecognitionException e) { if (line < 1 || !(offendingSymbol instanceof Token)) { return; } - + Token offendingToken = (Token) offendingSymbol; - - int length = (offendingToken.getType() == Token.EOF) ? 0 - : offendingToken.getText().length(); - - super.reportError(offendingToken.getStartIndex() + initialOffset, - length, msg); - } - - @Override - protected void doReportMarker(String type, int offset, int length, - String message, int severity) { - result.addMarker(type, offset, length, message, severity); - } - - /** - * Gets the parse result - */ - public PreprocessorParseResult getParseResult() { - return result; + + int length = (offendingToken.getType() == Token.EOF) ? 0 : offendingToken.getText().length(); + + super.reportError(offendingToken.getStartIndex() + initialOffset, length, msg); } } diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/parser/preprocessor/PreprocessorLexer.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/preprocessor/PreprocessorLexer.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/parser/preprocessor/PreprocessorLexer.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/preprocessor/PreprocessorLexer.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/parser/preprocessor/PreprocessorLexer.tokens b/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/preprocessor/PreprocessorLexer.tokens similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/parser/preprocessor/PreprocessorLexer.tokens rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/preprocessor/PreprocessorLexer.tokens diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/parser/preprocessor/PreprocessorListener.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/preprocessor/PreprocessorListener.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/parser/preprocessor/PreprocessorListener.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/preprocessor/PreprocessorListener.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/parser/preprocessor/PreprocessorParseListener.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/preprocessor/PreprocessorParseListener.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/parser/preprocessor/PreprocessorParseListener.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/preprocessor/PreprocessorParseListener.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/parser/preprocessor/PreprocessorParseResult.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/preprocessor/PreprocessorParseResult.java similarity index 98% rename from plugin/raven.sqdev.misc/src/raven/sqdev/parser/preprocessor/PreprocessorParseResult.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/preprocessor/PreprocessorParseResult.java index ce0f0717..675d2ef7 100644 --- a/plugin/raven.sqdev.misc/src/raven/sqdev/parser/preprocessor/PreprocessorParseResult.java +++ b/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/preprocessor/PreprocessorParseResult.java @@ -7,20 +7,20 @@ import raven.sqdev.parser.misc.ParseResult; public class PreprocessorParseResult extends ParseResult { - + /** * The list of defined macros */ private List macros; - + /** * Creates a new instance of this class */ public PreprocessorParseResult() { macros = new ArrayList(); } - - + + /** * Merges the given parse result into this one * @@ -29,10 +29,10 @@ public PreprocessorParseResult() { */ public void mergeWith(PreprocessorParseResult other) { super.mergeWith(other); - + macros.addAll(other.getMacros()); } - + /** * Adds the given Macro * @@ -42,7 +42,7 @@ public void mergeWith(PreprocessorParseResult other) { public void addMacro(Macro macro) { macros.add(macro); } - + /** * Gets all defined macros */ diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/parser/preprocessor/PreprocessorParser.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/preprocessor/PreprocessorParser.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/parser/preprocessor/PreprocessorParser.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/preprocessor/PreprocessorParser.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/parser/preprocessor/PreprocessorVisitor.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/preprocessor/PreprocessorVisitor.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/parser/preprocessor/PreprocessorVisitor.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/preprocessor/PreprocessorVisitor.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/parser/sqf/ERelativPosition.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/sqf/ERelativPosition.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/parser/sqf/ERelativPosition.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/sqf/ERelativPosition.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/parser/sqf/SQF.tokens b/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/sqf/SQF.tokens similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/parser/sqf/SQF.tokens rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/sqf/SQF.tokens diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/parser/sqf/SQFBaseListener.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/sqf/SQFBaseListener.java similarity index 99% rename from plugin/raven.sqdev.misc/src/raven/sqdev/parser/sqf/SQFBaseListener.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/sqf/SQFBaseListener.java index e5514df2..0d7554e8 100644 --- a/plugin/raven.sqdev.misc/src/raven/sqdev/parser/sqf/SQFBaseListener.java +++ b/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/sqf/SQFBaseListener.java @@ -1,4 +1,4 @@ -// Generated from SQF.g4 by ANTLR 4.5.3 +// Generated from SQF.g4 by ANTLR 4.7 package raven.sqdev.parser.sqf; diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/parser/sqf/SQFBaseVisitor.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/sqf/SQFBaseVisitor.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/parser/sqf/SQFBaseVisitor.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/sqf/SQFBaseVisitor.java diff --git a/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/sqf/SQFLexer.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/sqf/SQFLexer.java new file mode 100644 index 00000000..f63279d5 --- /dev/null +++ b/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/sqf/SQFLexer.java @@ -0,0 +1,311 @@ +// Generated from SQF.g4 by ANTLR 4.7 + + package raven.sqdev.parser.sqf; + + import java.util.List; + +import org.antlr.v4.runtime.Lexer; +import org.antlr.v4.runtime.CharStream; +import org.antlr.v4.runtime.Token; +import org.antlr.v4.runtime.TokenStream; +import org.antlr.v4.runtime.*; +import org.antlr.v4.runtime.atn.*; +import org.antlr.v4.runtime.dfa.DFA; +import org.antlr.v4.runtime.misc.*; + +@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"}) +public class SQFLexer extends Lexer { + static { RuntimeMetaData.checkVersion("4.7", RuntimeMetaData.VERSION); } + + protected static final DFA[] _decisionToDFA; + protected static final PredictionContextCache _sharedContextCache = + new PredictionContextCache(); + public static final int + OPERATOR_PRECEDENCE_MULTIPLY=1, OPERATOR_PRECEDENCE_ADD=2, PUCTUATION_OTHER=3, + OR=4, AND=5, COMPARE_PRECEDENCE_OPERATOR=6, ELSE=7, POWER=8, SEMICOLON=9, + COMMA=10, EQUALS=11, PRIVATE=12, MACRO_DECLARATION=13, WHITESPACE=14, + COMMENT=15, NUMBER=16, ID=17, BINARY_OPERATOR=18, STRING=19, C_B_O=20, + C_B_C=21, S_B_O=22, S_B_C=23, R_B_O=24, R_B_C=25, OTHER=26; + public static String[] channelNames = { + "DEFAULT_TOKEN_CHANNEL", "HIDDEN" + }; + + public static String[] modeNames = { + "DEFAULT_MODE" + }; + + public static final String[] ruleNames = { + "OPERATOR_PRECEDENCE_MULTIPLY", "OPERATOR_PRECEDENCE_ADD", "PUCTUATION_OTHER", + "OR", "AND", "COMPARE_PRECEDENCE_OPERATOR", "ELSE", "POWER", "SEMICOLON", + "COMMA", "EQUALS", "PRIVATE", "MACRO_DECLARATION", "WHITESPACE", "COMMENT", + "NUMBER", "ID", "BINARY_OPERATOR", "STRING", "C_B_O", "C_B_C", "S_B_O", + "S_B_C", "R_B_O", "R_B_C", "OTHER", "LETTER", "INT", "A", "E", "P", "L", + "R", "S", "T", "I", "V" + }; + + private static final String[] _LITERAL_NAMES = { + null, null, null, "'!'", "'||'", "'&&'", null, null, "'^'", "';'", "','", + "'='", null, null, null, null, null, null, "':'", null, "'{'", "'}'", + "'['", "']'", "'('", "')'" + }; + private static final String[] _SYMBOLIC_NAMES = { + null, "OPERATOR_PRECEDENCE_MULTIPLY", "OPERATOR_PRECEDENCE_ADD", "PUCTUATION_OTHER", + "OR", "AND", "COMPARE_PRECEDENCE_OPERATOR", "ELSE", "POWER", "SEMICOLON", + "COMMA", "EQUALS", "PRIVATE", "MACRO_DECLARATION", "WHITESPACE", "COMMENT", + "NUMBER", "ID", "BINARY_OPERATOR", "STRING", "C_B_O", "C_B_C", "S_B_O", + "S_B_C", "R_B_O", "R_B_C", "OTHER" + }; + public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); + + /** + * @deprecated Use {@link #VOCABULARY} instead. + */ + @Deprecated + public static final String[] tokenNames; + static { + tokenNames = new String[_SYMBOLIC_NAMES.length]; + for (int i = 0; i < tokenNames.length; i++) { + tokenNames[i] = VOCABULARY.getLiteralName(i); + if (tokenNames[i] == null) { + tokenNames[i] = VOCABULARY.getSymbolicName(i); + } + + if (tokenNames[i] == null) { + tokenNames[i] = ""; + } + } + } + + @Override + @Deprecated + public String[] getTokenNames() { + return tokenNames; + } + + @Override + + public Vocabulary getVocabulary() { + return VOCABULARY; + } + + + + protected List binaryOperators; + protected List unaryOperators; + protected List macroNames; + + + public SQFLexer(CharStream input, List binaryOperators, List unaryOperators, List macroNames) { + this(input); + + // make operators lowercase + for(int i=0; i>@@\3\2\f\f\5\2\13\f\17\17\"\"\3\3\f\f\3\2$$\3"+ + "\2))\4\2C\\c|\3\2\62;\4\2CCcc\4\2GGgg\4\2RRrr\4\2NNnn\4\2TTtt\4\2UUuu"+ + "\4\2VVvv\4\2KKkk\4\2XXxx\2\u018a\2\3\3\2\2\2\2\5\3\2\2\2\2\7\3\2\2\2\2"+ + "\t\3\2\2\2\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2\2\2\21\3\2\2\2\2\23\3\2"+ + "\2\2\2\25\3\2\2\2\2\27\3\2\2\2\2\31\3\2\2\2\2\33\3\2\2\2\2\35\3\2\2\2"+ + "\2\37\3\2\2\2\2!\3\2\2\2\2#\3\2\2\2\2%\3\2\2\2\2\'\3\2\2\2\2)\3\2\2\2"+ + "\2+\3\2\2\2\2-\3\2\2\2\2/\3\2\2\2\2\61\3\2\2\2\2\63\3\2\2\2\2\65\3\2\2"+ + "\2\3Q\3\2\2\2\5Z\3\2\2\2\7\\\3\2\2\2\t^\3\2\2\2\13a\3\2\2\2\ro\3\2\2\2"+ + "\17q\3\2\2\2\21v\3\2\2\2\23x\3\2\2\2\25z\3\2\2\2\27|\3\2\2\2\31~\3\2\2"+ + "\2\33\u00ac\3\2\2\2\35\u00b1\3\2\2\2\37\u00ce\3\2\2\2!\u00f3\3\2\2\2#"+ + "\u0121\3\2\2\2%\u0127\3\2\2\2\'\u013d\3\2\2\2)\u013f\3\2\2\2+\u0141\3"+ + "\2\2\2-\u0143\3\2\2\2/\u0145\3\2\2\2\61\u0147\3\2\2\2\63\u0149\3\2\2\2"+ + "\65\u014c\3\2\2\2\67\u0150\3\2\2\29\u0152\3\2\2\2;\u0154\3\2\2\2=\u0156"+ + "\3\2\2\2?\u0158\3\2\2\2A\u015a\3\2\2\2C\u015c\3\2\2\2E\u015e\3\2\2\2G"+ + "\u0160\3\2\2\2I\u0162\3\2\2\2K\u0164\3\2\2\2MR\t\2\2\2NO\7o\2\2OP\7q\2"+ + "\2PR\7f\2\2QM\3\2\2\2QN\3\2\2\2R\4\3\2\2\2S[\t\3\2\2TU\7o\2\2UV\7k\2\2"+ + "V[\7p\2\2WX\7o\2\2XY\7c\2\2Y[\7z\2\2ZS\3\2\2\2ZT\3\2\2\2ZW\3\2\2\2[\6"+ + "\3\2\2\2\\]\7#\2\2]\b\3\2\2\2^_\7~\2\2_`\7~\2\2`\n\3\2\2\2ab\7(\2\2bc"+ + "\7(\2\2c\f\3\2\2\2de\7?\2\2ep\7?\2\2fg\7#\2\2gp\7?\2\2hp\t\4\2\2ij\7>"+ + "\2\2jp\7?\2\2kl\7@\2\2lp\7?\2\2mn\7@\2\2np\7@\2\2od\3\2\2\2of\3\2\2\2"+ + "oh\3\2\2\2oi\3\2\2\2ok\3\2\2\2om\3\2\2\2p\16\3\2\2\2qr\5=\37\2rs\5A!\2"+ + "st\5E#\2tu\5=\37\2u\20\3\2\2\2vw\7`\2\2w\22\3\2\2\2xy\7=\2\2y\24\3\2\2"+ + "\2z{\7.\2\2{\26\3\2\2\2|}\7?\2\2}\30\3\2\2\2~\177\5? \2\177\u0080\5C\""+ + "\2\u0080\u0081\5I%\2\u0081\u0082\5K&\2\u0082\u0083\5;\36\2\u0083\u0084"+ + "\5G$\2\u0084\u0085\5=\37\2\u0085\32\3\2\2\2\u0086\u0087\7%\2\2\u0087\u0088"+ + "\7k\2\2\u0088\u0089\7h\2\2\u0089\u008a\7f\2\2\u008a\u008b\7g\2\2\u008b"+ + "\u0094\7h\2\2\u008c\u008d\7%\2\2\u008d\u008e\7k\2\2\u008e\u008f\7h\2\2"+ + "\u008f\u0090\7p\2\2\u0090\u0091\7f\2\2\u0091\u0092\7g\2\2\u0092\u0094"+ + "\7h\2\2\u0093\u0086\3\2\2\2\u0093\u008c\3\2\2\2\u0094\u0098\3\2\2\2\u0095"+ + "\u0097\13\2\2\2\u0096\u0095\3\2\2\2\u0097\u009a\3\2\2\2\u0098\u0099\3"+ + "\2\2\2\u0098\u0096\3\2\2\2\u0099\u009b\3\2\2\2\u009a\u0098\3\2\2\2\u009b"+ + "\u009c\7%\2\2\u009c\u009d\7g\2\2\u009d\u009e\7p\2\2\u009e\u009f\7f\2\2"+ + "\u009f\u00a0\7k\2\2\u00a0\u00ad\7h\2\2\u00a1\u00a8\7%\2\2\u00a2\u00a7"+ + "\n\5\2\2\u00a3\u00a4\7\"\2\2\u00a4\u00a5\7^\2\2\u00a5\u00a7\7\f\2\2\u00a6"+ + "\u00a2\3\2\2\2\u00a6\u00a3\3\2\2\2\u00a7\u00aa\3\2\2\2\u00a8\u00a6\3\2"+ + "\2\2\u00a8\u00a9\3\2\2\2\u00a9\u00ab\3\2\2\2\u00aa\u00a8\3\2\2\2\u00ab"+ + "\u00ad\7\f\2\2\u00ac\u0093\3\2\2\2\u00ac\u00a1\3\2\2\2\u00ad\u00ae\3\2"+ + "\2\2\u00ae\u00af\b\16\2\2\u00af\34\3\2\2\2\u00b0\u00b2\t\6\2\2\u00b1\u00b0"+ + "\3\2\2\2\u00b2\u00b3\3\2\2\2\u00b3\u00b1\3\2\2\2\u00b3\u00b4\3\2\2\2\u00b4"+ + "\u00b5\3\2\2\2\u00b5\u00b6\b\17\2\2\u00b6\36\3\2\2\2\u00b7\u00b8\7\61"+ + "\2\2\u00b8\u00b9\7\61\2\2\u00b9\u00bd\3\2\2\2\u00ba\u00bc\13\2\2\2\u00bb"+ + "\u00ba\3\2\2\2\u00bc\u00bf\3\2\2\2\u00bd\u00be\3\2\2\2\u00bd\u00bb\3\2"+ + "\2\2\u00be\u00c1\3\2\2\2\u00bf\u00bd\3\2\2\2\u00c0\u00c2\t\7\2\2\u00c1"+ + "\u00c0\3\2\2\2\u00c2\u00cf\3\2\2\2\u00c3\u00c4\7\61\2\2\u00c4\u00c5\7"+ + ",\2\2\u00c5\u00c9\3\2\2\2\u00c6\u00c8\13\2\2\2\u00c7\u00c6\3\2\2\2\u00c8"+ + "\u00cb\3\2\2\2\u00c9\u00ca\3\2\2\2\u00c9\u00c7\3\2\2\2\u00ca\u00cc\3\2"+ + "\2\2\u00cb\u00c9\3\2\2\2\u00cc\u00cd\7,\2\2\u00cd\u00cf\7\61\2\2\u00ce"+ + "\u00b7\3\2\2\2\u00ce\u00c3\3\2\2\2\u00cf\u00d0\3\2\2\2\u00d0\u00d1\b\20"+ + "\2\2\u00d1 \3\2\2\2\u00d2\u00d4\59\35\2\u00d3\u00d2\3\2\2\2\u00d4\u00d5"+ + "\3\2\2\2\u00d5\u00d3\3\2\2\2\u00d5\u00d6\3\2\2\2\u00d6\u00f4\3\2\2\2\u00d7"+ + "\u00d9\59\35\2\u00d8\u00d7\3\2\2\2\u00d9\u00da\3\2\2\2\u00da\u00d8\3\2"+ + "\2\2\u00da\u00db\3\2\2\2\u00db\u00dc\3\2\2\2\u00dc\u00de\7\60\2\2\u00dd"+ + "\u00df\59\35\2\u00de\u00dd\3\2\2\2\u00df\u00e0\3\2\2\2\u00e0\u00de\3\2"+ + "\2\2\u00e0\u00e1\3\2\2\2\u00e1\u00f4\3\2\2\2\u00e2\u00e4\7\60\2\2\u00e3"+ + "\u00e5\59\35\2\u00e4\u00e3\3\2\2\2\u00e5\u00e6\3\2\2\2\u00e6\u00e4\3\2"+ + "\2\2\u00e6\u00e7\3\2\2\2\u00e7\u00f4\3\2\2\2\u00e8\u00e9\7\62\2\2\u00e9"+ + "\u00ec\7z\2\2\u00ea\u00ec\7&\2\2\u00eb\u00e8\3\2\2\2\u00eb\u00ea\3\2\2"+ + "\2\u00ec\u00ef\3\2\2\2\u00ed\u00f0\59\35\2\u00ee\u00f0\5\67\34\2\u00ef"+ + "\u00ed\3\2\2\2\u00ef\u00ee\3\2\2\2\u00f0\u00f1\3\2\2\2\u00f1\u00ef\3\2"+ + "\2\2\u00f1\u00f2\3\2\2\2\u00f2\u00f4\3\2\2\2\u00f3\u00d3\3\2\2\2\u00f3"+ + "\u00d8\3\2\2\2\u00f3\u00e2\3\2\2\2\u00f3\u00eb\3\2\2\2\u00f4\u011c\3\2"+ + "\2\2\u00f5\u00f7\7g\2\2\u00f6\u00f8\7/\2\2\u00f7\u00f6\3\2\2\2\u00f7\u00f8"+ + "\3\2\2\2\u00f8\u011a\3\2\2\2\u00f9\u00fb\59\35\2\u00fa\u00f9\3\2\2\2\u00fb"+ + "\u00fc\3\2\2\2\u00fc\u00fa\3\2\2\2\u00fc\u00fd\3\2\2\2\u00fd\u011b\3\2"+ + "\2\2\u00fe\u0100\59\35\2\u00ff\u00fe\3\2\2\2\u0100\u0101\3\2\2\2\u0101"+ + "\u00ff\3\2\2\2\u0101\u0102\3\2\2\2\u0102\u0103\3\2\2\2\u0103\u0105\7\60"+ + "\2\2\u0104\u0106\59\35\2\u0105\u0104\3\2\2\2\u0106\u0107\3\2\2\2\u0107"+ + "\u0105\3\2\2\2\u0107\u0108\3\2\2\2\u0108\u011b\3\2\2\2\u0109\u010b\7\60"+ + "\2\2\u010a\u010c\59\35\2\u010b\u010a\3\2\2\2\u010c\u010d\3\2\2\2\u010d"+ + "\u010b\3\2\2\2\u010d\u010e\3\2\2\2\u010e\u011b\3\2\2\2\u010f\u0110\7\62"+ + "\2\2\u0110\u0113\7z\2\2\u0111\u0113\7&\2\2\u0112\u010f\3\2\2\2\u0112\u0111"+ + "\3\2\2\2\u0113\u0116\3\2\2\2\u0114\u0117\59\35\2\u0115\u0117\5\67\34\2"+ + "\u0116\u0114\3\2\2\2\u0116\u0115\3\2\2\2\u0117\u0118\3\2\2\2\u0118\u0116"+ + "\3\2\2\2\u0118\u0119\3\2\2\2\u0119\u011b\3\2\2\2\u011a\u00fa\3\2\2\2\u011a"+ + "\u00ff\3\2\2\2\u011a\u0109\3\2\2\2\u011a\u0112\3\2\2\2\u011b\u011d\3\2"+ + "\2\2\u011c\u00f5\3\2\2\2\u011c\u011d\3\2\2\2\u011d\"\3\2\2\2\u011e\u0122"+ + "\5\67\34\2\u011f\u0122\59\35\2\u0120\u0122\7a\2\2\u0121\u011e\3\2\2\2"+ + "\u0121\u011f\3\2\2\2\u0121\u0120\3\2\2\2\u0122\u0123\3\2\2\2\u0123\u0121"+ + "\3\2\2\2\u0123\u0124\3\2\2\2\u0124\u0125\3\2\2\2\u0125\u0126\b\22\3\2"+ + "\u0126$\3\2\2\2\u0127\u0128\7<\2\2\u0128&\3\2\2\2\u0129\u012f\7$\2\2\u012a"+ + "\u012e\n\b\2\2\u012b\u012c\7$\2\2\u012c\u012e\7$\2\2\u012d\u012a\3\2\2"+ + "\2\u012d\u012b\3\2\2\2\u012e\u0131\3\2\2\2\u012f\u012d\3\2\2\2\u012f\u0130"+ + "\3\2\2\2\u0130\u0132\3\2\2\2\u0131\u012f\3\2\2\2\u0132\u013e\7$\2\2\u0133"+ + "\u0139\7)\2\2\u0134\u0138\n\t\2\2\u0135\u0136\7)\2\2\u0136\u0138\7)\2"+ + "\2\u0137\u0134\3\2\2\2\u0137\u0135\3\2\2\2\u0138\u013b\3\2\2\2\u0139\u0137"+ + "\3\2\2\2\u0139\u013a\3\2\2\2\u013a\u013c\3\2\2\2\u013b\u0139\3\2\2\2\u013c"+ + "\u013e\7)\2\2\u013d\u0129\3\2\2\2\u013d\u0133\3\2\2\2\u013e(\3\2\2\2\u013f"+ + "\u0140\7}\2\2\u0140*\3\2\2\2\u0141\u0142\7\177\2\2\u0142,\3\2\2\2\u0143"+ + "\u0144\7]\2\2\u0144.\3\2\2\2\u0145\u0146\7_\2\2\u0146\60\3\2\2\2\u0147"+ + "\u0148\7*\2\2\u0148\62\3\2\2\2\u0149\u014a\7+\2\2\u014a\64\3\2\2\2\u014b"+ + "\u014d\13\2\2\2\u014c\u014b\3\2\2\2\u014d\u014e\3\2\2\2\u014e\u014f\3"+ + "\2\2\2\u014e\u014c\3\2\2\2\u014f\66\3\2\2\2\u0150\u0151\t\n\2\2\u0151"+ + "8\3\2\2\2\u0152\u0153\t\13\2\2\u0153:\3\2\2\2\u0154\u0155\t\f\2\2\u0155"+ + "<\3\2\2\2\u0156\u0157\t\r\2\2\u0157>\3\2\2\2\u0158\u0159\t\16\2\2\u0159"+ + "@\3\2\2\2\u015a\u015b\t\17\2\2\u015bB\3\2\2\2\u015c\u015d\t\20\2\2\u015d"+ + "D\3\2\2\2\u015e\u015f\t\21\2\2\u015fF\3\2\2\2\u0160\u0161\t\22\2\2\u0161"+ + "H\3\2\2\2\u0162\u0163\t\23\2\2\u0163J\3\2\2\2\u0164\u0165\t\24\2\2\u0165"+ + "L\3\2\2\2*\2QZo\u0093\u0098\u00a6\u00a8\u00ac\u00b3\u00bd\u00c1\u00c9"+ + "\u00ce\u00d5\u00da\u00e0\u00e6\u00eb\u00ef\u00f1\u00f3\u00f7\u00fc\u0101"+ + "\u0107\u010d\u0112\u0116\u0118\u011a\u011c\u0121\u0123\u012d\u012f\u0137"+ + "\u0139\u013d\u014e\4\b\2\2\3\22\2"; + public static final ATN _ATN = + new ATNDeserializer().deserialize(_serializedATN.toCharArray()); + static { + _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; + for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { + _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); + } + } +} \ No newline at end of file diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/parser/sqf/SQFLexer.tokens b/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/sqf/SQFLexer.tokens similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/parser/sqf/SQFLexer.tokens rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/sqf/SQFLexer.tokens diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/parser/sqf/SQFListener.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/sqf/SQFListener.java similarity index 99% rename from plugin/raven.sqdev.misc/src/raven/sqdev/parser/sqf/SQFListener.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/sqf/SQFListener.java index b86611f5..39a1c385 100644 --- a/plugin/raven.sqdev.misc/src/raven/sqdev/parser/sqf/SQFListener.java +++ b/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/sqf/SQFListener.java @@ -1,4 +1,4 @@ -// Generated from SQF.g4 by ANTLR 4.5.3 +// Generated from SQF.g4 by ANTLR 4.7 package raven.sqdev.parser.sqf; diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/parser/sqf/SQFParseInformation.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/sqf/SQFParseInformation.java similarity index 51% rename from plugin/raven.sqdev.misc/src/raven/sqdev/parser/sqf/SQFParseInformation.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/sqf/SQFParseInformation.java index cb64764e..a5943182 100644 --- a/plugin/raven.sqdev.misc/src/raven/sqdev/parser/sqf/SQFParseInformation.java +++ b/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/sqf/SQFParseInformation.java @@ -10,6 +10,7 @@ import raven.sqdev.interfaces.ISQFParseInformation; import raven.sqdev.misc.Macro; import raven.sqdev.misc.SQDevInfobox; +import raven.sqdev.parser.misc.ParseUtil; import raven.sqdev.pluginManagement.ResourceManager; /** @@ -23,66 +24,76 @@ public class SQFParseInformation implements ISQFParseInformation { * The SQF keywords to use */ private static KeywordList keywords; - + private static List binaryOperator; + private static List binaryKeywords; private static List unaryOperator; + private static List unaryKeywords; private static List nularOperator; + private static List nularKeywords; private static List magicVars; - + private static List magicVarNames; + private List macros; - + private List macroNames; + /** * Creates a new instance of this class */ public SQFParseInformation(List macros) { this(false, macros); } - + /** * Creates a new instance of this class * * @param refresh - * Indicates whether the used list of keywords should be - * refreshed. Otheriwse the one from previous instances of this - * class will be used. If the keywords are refreshed every - * existing instance will use the refreshed list + * Indicates whether the used list of keywords should be refreshed. + * Otheriwse the one from previous instances of this class will be + * used. If the keywords are refreshed every existing instance will + * use the refreshed list * @param macros * A list of defined macros the SQF parser should be aware of */ public SQFParseInformation(boolean refresh, List macros) { this.macros = macros; - + macroNames = new ArrayList(); + + loadMacronames(); + if (refresh || keywords == null) { binaryOperator = new ArrayList(); + binaryKeywords = new ArrayList(); unaryOperator = new ArrayList(); + unaryKeywords = new ArrayList(); nularOperator = new ArrayList(); - - ResourceManager manager = ResourceManager.getManager(); - String savedKeywords = manager - .getResourceContent("SQFKeywords.txt"); - + nularKeywords = new ArrayList(); + magicVarNames = new ArrayList(); + + String savedKeywords = getKeywordContent(); + if (savedKeywords == null) { SQDevInfobox info = new SQDevInfobox( - "Failed at instantiating SQF editor properly!\n\nReason:" + "Failed at instantiating SQF parseInformation properly!\n\nReason:" + "\nProblems with reading respective resource"); info.open(); - + return; } - + keywords = new KeywordList(savedKeywords); - + if (keywords.getFailures().size() > 0) { - SQDevInfobox info = new SQDevInfobox("Failed to load " - + keywords.getFailures().size() + " commands", + SQDevInfobox info = new SQDevInfobox( + "Failed to load " + keywords.getFailures().size() + " commands", keywords.getFailures()); - + info.open(false); } - + for (Keyword currentKeyword : keywords.getKeywords()) { SQFCommand command = (SQFCommand) currentKeyword; - + if (command.isBinaryOperator()) { binaryOperator.add(command); } else { @@ -93,86 +104,97 @@ public SQFParseInformation(boolean refresh, List macros) { } } } - - magicVars = SQFParseUtil.getDefaultMagicVars(); + + magicVars = ParseUtil.getDefaultMagicVars(); + + loadNames(); } } - + + /** + * Gets the saved keywords in their storage-form + */ + protected String getKeywordContent() { + ResourceManager manager = ResourceManager.getManager(); + return manager.getResourceContent("SQFKeywords.txt"); + } + + /** + * Initializes all name-lists except the macro-namelist (see + * {@link #loadMacronames()}) + */ + private void loadNames() { + for (Keyword current : binaryOperator) { + binaryKeywords.add(current.getKeyword()); + } + for (Keyword current : unaryOperator) { + unaryKeywords.add(current.getKeyword()); + } + for (Keyword current : nularOperator) { + nularKeywords.add(current.getKeyword()); + } + for (Keyword current : magicVars) { + magicVarNames.add(current.getKeyword()); + } + } + + /** + * Initializes the macro-namelist + */ + private void loadMacronames() { + for (Macro currentMacro : macros) { + macroNames.add(currentMacro.getKeyword()); + } + } + @Override public List getBinaryOperators() { - return binaryOperator; + return new ArrayList(binaryOperator); } - + @Override public List getUnaryOperators() { - return unaryOperator; + return new ArrayList(unaryOperator); } - + @Override public List getNularOperators() { - return nularOperator; + return new ArrayList(nularOperator); } - + @Override public List getMagicVariables() { - return magicVars; + return new ArrayList(magicVars); } - + @Override public List getMacros() { - return macros; + return new ArrayList(macros); } - - /** - * Gets the names of the defined macros - */ - public List getMacroNames() { - List macroNames = new ArrayList(); - - for (Macro currentMacro : macros) { - macroNames.add(currentMacro.getKeyword()); - } - - return macroNames; + + @Override + public List getBinaryKeywords() { + return new ArrayList(binaryKeywords); } - - /** - * Gets the names of all binary operators - */ - public List getBinaryOperatorNames() { - List names = new ArrayList(); - - for (SQFCommand currentOperator : binaryOperator) { - names.add(currentOperator.getKeyword()); - } - - return names; + + @Override + public List getUnaryKeywords() { + return new ArrayList(unaryKeywords); } - - /** - * Gets the names of all unary operators - */ - public List getUnaryOperatorNames() { - List names = new ArrayList(); - - for (SQFCommand currentOperator : unaryOperator) { - names.add(currentOperator.getKeyword()); - } - - return names; + + @Override + public List getNularKeywords() { + return new ArrayList(nularKeywords); } - - /** - * Gets the names of all nular operators - */ - public List getNularOperatorNames() { - List names = new ArrayList(); - - for (SQFCommand currentOperator : nularOperator) { - names.add(currentOperator.getKeyword()); - } - - return names; + + @Override + public List getMagicVariableNames() { + return new ArrayList(macroNames); + } + + @Override + public List getMacroNames() { + return new ArrayList(macroNames); } - + } diff --git a/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/sqf/SQFParseResult.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/sqf/SQFParseResult.java new file mode 100644 index 00000000..e9279003 --- /dev/null +++ b/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/sqf/SQFParseResult.java @@ -0,0 +1,168 @@ +package raven.sqdev.parser.sqf; + +import java.util.ArrayList; +import java.util.List; + +import org.antlr.v4.runtime.BufferedTokenStream; +import org.eclipse.jface.text.Position; + +import raven.sqdev.infoCollection.base.Variable; +import raven.sqdev.parser.misc.ParseResult; + +/** + * A basic implementation of an {@link ISQFParseResult} + * + * @author Raven + * + */ +public class SQFParseResult extends ParseResult { + + /** + * A list of local variables declared during the parsing + */ + private List declaredLocalVariables; + + /** + * A list of global variables declared during the parsing + */ + private List declaredGlobalVariables; + /** + * A list of folding areas + */ + private List foldingAreas; + /** + * A list containing the parser-rule names + */ + private List parserRuleNames; + /** + * The TokenStream of the parsing + */ + private BufferedTokenStream tokenStream; + + + public SQFParseResult() { + foldingAreas = new ArrayList(); + declaredLocalVariables = new ArrayList(); + declaredGlobalVariables = new ArrayList(); + } + + /** + * Sets the found variables + * + * @param localVariables + * The list of found local variables + * @param globalVariables + * The list of found global variables + */ + public void setVariables(List localVariables, List globalVariables) { + + declaredLocalVariables = localVariables; + declaredGlobalVariables = globalVariables; + } + + /** + * Adds a folding area + * + * @param position + * The position describing the location that should be foldable + */ + public void addFoldingArea(Position position) { + foldingAreas.add(position); + } + + /** + * Gets a list of found local variable declarations + */ + public List getDeclaredLocalVariables() { + return declaredLocalVariables; + } + + /** + * Gets a list of found global variable declarations + */ + public List getDeclaredGlobalVariables() { + return declaredGlobalVariables; + } + + /** + * Gets a list of found folding areas + */ + public List getFoldingAreas() { + return foldingAreas; + } + + /** + * Sets the names of the parser rules + * + * @param names + * The list of names + */ + public void setParserRuleNames(List names) { + parserRuleNames = names; + } + + /** + * Gets a list of parser-rule names. May be null + */ + public List getParserRulenames() { + return parserRuleNames; + } + + /** + * Checks whether this result provides parser rule names + */ + public boolean providesParserRuleNames() { + return parserRuleNames != null; + } + + /** + * Sets the tokenStream + * + * @param stream + * The respective stream object + */ + public void setTokenStream(BufferedTokenStream stream) { + this.tokenStream = stream; + } + + /** + * Gets the used TokenStream. May be null. + */ + public BufferedTokenStream getTokenStream() { + return tokenStream; + } + + /** + * Checks if this result provides a TokenStream + */ + public boolean providesTokenStream() { + return tokenStream != null; + } + + /** + * Merges the given SQFParseResult with this one. Note that fields like + * {@link #parserRuleNames} and {@link #tokenStream} will not be overwritten + * during that process (unless they are null). + * + * If you want to only merge the reported markers then cast the argument to a + * {@link SQFParseResult}} + * + * @param other + * The SQFParseResult to merge into this one + */ + public void mergeWith(SQFParseResult other) { + super.mergeWith(other); + + foldingAreas.addAll(other.getFoldingAreas()); + declaredLocalVariables.addAll(other.getDeclaredLocalVariables()); + declaredGlobalVariables.addAll(other.getDeclaredGlobalVariables()); + + if (parserRuleNames == null) { + parserRuleNames = other.getParserRulenames(); + } + if (tokenStream == null) { + tokenStream = other.getTokenStream(); + } + } + +} diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/parser/sqf/SQFParser.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/sqf/SQFParser.java similarity index 91% rename from plugin/raven.sqdev.misc/src/raven/sqdev/parser/sqf/SQFParser.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/sqf/SQFParser.java index ffa8ed38..d2354881 100644 --- a/plugin/raven.sqdev.misc/src/raven/sqdev/parser/sqf/SQFParser.java +++ b/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/sqf/SQFParser.java @@ -1,4 +1,4 @@ -// Generated from SQF.g4 by ANTLR 4.5.3 +// Generated from SQF.g4 by ANTLR 4.7 package raven.sqdev.parser.sqf; @@ -13,7 +13,7 @@ @SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"}) public class SQFParser extends Parser { - static { RuntimeMetaData.checkVersion("4.5.3", RuntimeMetaData.VERSION); } + static { RuntimeMetaData.checkVersion("4.7", RuntimeMetaData.VERSION); } protected static final DFA[] _decisionToDFA; protected static final PredictionContextCache _sharedContextCache = @@ -114,11 +114,6 @@ public void enterRule(ParseTreeListener listener) { public void exitRule(ParseTreeListener listener) { if ( listener instanceof SQFListener ) ((SQFListener)listener).exitStart(this); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof SQFVisitor ) return ((SQFVisitor)visitor).visitStart(this); - else return visitor.visitChildren(this); - } } public final StartContext start() throws RecognitionException { @@ -168,11 +163,6 @@ public void enterRule(ParseTreeListener listener) { public void exitRule(ParseTreeListener listener) { if ( listener instanceof SQFListener ) ((SQFListener)listener).exitCode(this); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof SQFVisitor ) return ((SQFVisitor)visitor).visitCode(this); - else return visitor.visitChildren(this); - } } public final CodeContext code() throws RecognitionException { @@ -257,11 +247,6 @@ public void enterRule(ParseTreeListener listener) { public void exitRule(ParseTreeListener listener) { if ( listener instanceof SQFListener ) ((SQFListener)listener).exitMacro(this); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof SQFVisitor ) return ((SQFVisitor)visitor).visitMacro(this); - else return visitor.visitChildren(this); - } } public final MacroContext macro() throws RecognitionException { @@ -347,11 +332,6 @@ public void enterRule(ParseTreeListener listener) { public void exitRule(ParseTreeListener listener) { if ( listener instanceof SQFListener ) ((SQFListener)listener).exitMacroArgument(this); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof SQFVisitor ) return ((SQFVisitor)visitor).visitMacroArgument(this); - else return visitor.visitChildren(this); - } } public final MacroArgumentContext macroArgument() throws RecognitionException { @@ -403,7 +383,10 @@ public final MacroArgumentContext macroArgument() throws RecognitionException { _la = _input.LA(1); if ( _la <= 0 || (_la==COMMA || _la==R_B_C) ) { _errHandler.recoverInline(this); - } else { + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); consume(); } } @@ -448,11 +431,6 @@ public void enterRule(ParseTreeListener listener) { public void exitRule(ParseTreeListener listener) { if ( listener instanceof SQFListener ) ((SQFListener)listener).exitStatement(this); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof SQFVisitor ) return ((SQFVisitor)visitor).visitStatement(this); - else return visitor.visitChildren(this); - } } public final StatementContext statement() throws RecognitionException { @@ -521,11 +499,6 @@ public void enterRule(ParseTreeListener listener) { public void exitRule(ParseTreeListener listener) { if ( listener instanceof SQFListener ) ((SQFListener)listener).exitAssignment(this); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof SQFVisitor ) return ((SQFVisitor)visitor).visitAssignment(this); - else return visitor.visitChildren(this); - } } public final AssignmentContext assignment() throws RecognitionException { @@ -536,6 +509,7 @@ public final AssignmentContext assignment() throws RecognitionException { enterOuterAlt(_localctx, 1); { setState(78); + _errHandler.sync(this); _la = _input.LA(1); if (_la==PRIVATE) { { @@ -545,6 +519,7 @@ public final AssignmentContext assignment() throws RecognitionException { } setState(82); + _errHandler.sync(this); switch (_input.LA(1)) { case ID: { @@ -622,11 +597,6 @@ public void enterRule(ParseTreeListener listener) { public void exitRule(ParseTreeListener listener) { if ( listener instanceof SQFListener ) ((SQFListener)listener).exitBinaryExpression(this); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof SQFVisitor ) return ((SQFVisitor)visitor).visitBinaryExpression(this); - else return visitor.visitChildren(this); - } } public final BinaryExpressionContext binaryExpression() throws RecognitionException { @@ -829,11 +799,6 @@ public void enterRule(ParseTreeListener listener) { public void exitRule(ParseTreeListener listener) { if ( listener instanceof SQFListener ) ((SQFListener)listener).exitPrimaryExpression(this); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof SQFVisitor ) return ((SQFVisitor)visitor).visitPrimaryExpression(this); - else return visitor.visitChildren(this); - } } public final PrimaryExpressionContext primaryExpression(boolean allowBinaryAlts) throws RecognitionException { @@ -910,11 +875,6 @@ public void enterRule(ParseTreeListener listener) { public void exitRule(ParseTreeListener listener) { if ( listener instanceof SQFListener ) ((SQFListener)listener).exitArray(this); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof SQFVisitor ) return ((SQFVisitor)visitor).visitArray(this); - else return visitor.visitChildren(this); - } } public static class ParenthesisContext extends NularExpressionContext { public TerminalNode R_B_O() { return getToken(SQFParser.R_B_O, 0); } @@ -931,11 +891,6 @@ public void enterRule(ParseTreeListener listener) { public void exitRule(ParseTreeListener listener) { if ( listener instanceof SQFListener ) ((SQFListener)listener).exitParenthesis(this); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof SQFVisitor ) return ((SQFVisitor)visitor).visitParenthesis(this); - else return visitor.visitChildren(this); - } } public static class NularOperatorContext extends NularExpressionContext { public OperatorContext operator() { @@ -950,11 +905,6 @@ public void enterRule(ParseTreeListener listener) { public void exitRule(ParseTreeListener listener) { if ( listener instanceof SQFListener ) ((SQFListener)listener).exitNularOperator(this); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof SQFVisitor ) return ((SQFVisitor)visitor).visitNularOperator(this); - else return visitor.visitChildren(this); - } } public static class NumberContext extends NularExpressionContext { public TerminalNode NUMBER() { return getToken(SQFParser.NUMBER, 0); } @@ -967,11 +917,6 @@ public void enterRule(ParseTreeListener listener) { public void exitRule(ParseTreeListener listener) { if ( listener instanceof SQFListener ) ((SQFListener)listener).exitNumber(this); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof SQFVisitor ) return ((SQFVisitor)visitor).visitNumber(this); - else return visitor.visitChildren(this); - } } public static class ErrorContext extends NularExpressionContext { public CommonErrorContext commonError() { @@ -986,11 +931,6 @@ public void enterRule(ParseTreeListener listener) { public void exitRule(ParseTreeListener listener) { if ( listener instanceof SQFListener ) ((SQFListener)listener).exitError(this); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof SQFVisitor ) return ((SQFVisitor)visitor).visitError(this); - else return visitor.visitChildren(this); - } } public static class StringContext extends NularExpressionContext { public TerminalNode STRING() { return getToken(SQFParser.STRING, 0); } @@ -1003,11 +943,6 @@ public void enterRule(ParseTreeListener listener) { public void exitRule(ParseTreeListener listener) { if ( listener instanceof SQFListener ) ((SQFListener)listener).exitString(this); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof SQFVisitor ) return ((SQFVisitor)visitor).visitString(this); - else return visitor.visitChildren(this); - } } public static class InlineCodeContext extends NularExpressionContext { public TerminalNode C_B_O() { return getToken(SQFParser.C_B_O, 0); } @@ -1024,11 +959,6 @@ public void enterRule(ParseTreeListener listener) { public void exitRule(ParseTreeListener listener) { if ( listener instanceof SQFListener ) ((SQFListener)listener).exitInlineCode(this); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof SQFVisitor ) return ((SQFVisitor)visitor).visitInlineCode(this); - else return visitor.visitChildren(this); - } } public final NularExpressionContext nularExpression() throws RecognitionException { @@ -1186,11 +1116,6 @@ public void enterRule(ParseTreeListener listener) { public void exitRule(ParseTreeListener listener) { if ( listener instanceof SQFListener ) ((SQFListener)listener).exitCommonError(this); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof SQFVisitor ) return ((SQFVisitor)visitor).visitCommonError(this); - else return visitor.visitChildren(this); - } } public final CommonErrorContext commonError() throws RecognitionException { @@ -1340,11 +1265,6 @@ public void enterRule(ParseTreeListener listener) { public void exitRule(ParseTreeListener listener) { if ( listener instanceof SQFListener ) ((SQFListener)listener).exitUnaryExpression(this); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof SQFVisitor ) return ((SQFVisitor)visitor).visitUnaryExpression(this); - else return visitor.visitChildren(this); - } } public final UnaryExpressionContext unaryExpression(boolean allowBinaryAlts) throws RecognitionException { @@ -1362,7 +1282,10 @@ public final UnaryExpressionContext unaryExpression(boolean allowBinaryAlts) thr _la = _input.LA(1); if ( !(_la==PUCTUATION_OTHER || _la==UNARY_OPERATOR) ) { _errHandler.recoverInline(this); - } else { + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); consume(); } setState(196); @@ -1419,11 +1342,6 @@ public void enterRule(ParseTreeListener listener) { public void exitRule(ParseTreeListener listener) { if ( listener instanceof SQFListener ) ((SQFListener)listener).exitOperator(this); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof SQFVisitor ) return ((SQFVisitor)visitor).visitOperator(this); - else return visitor.visitChildren(this); - } } public final OperatorContext operator() throws RecognitionException { @@ -1431,6 +1349,7 @@ public final OperatorContext operator() throws RecognitionException { enterRule(_localctx, 22, RULE_operator); try { setState(206); + _errHandler.sync(this); switch (_input.LA(1)) { case ID: enterOuterAlt(_localctx, 1); @@ -1475,11 +1394,6 @@ public void enterRule(ParseTreeListener listener) { public void exitRule(ParseTreeListener listener) { if ( listener instanceof SQFListener ) ((SQFListener)listener).exitPunctuation(this); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof SQFVisitor ) return ((SQFVisitor)visitor).visitPunctuation(this); - else return visitor.visitChildren(this); - } } public final PunctuationContext punctuation() throws RecognitionException { @@ -1542,7 +1456,7 @@ private boolean unaryExpression_sempred(UnaryExpressionContext _localctx, int pr } public static final String _serializedATN = - "\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\3\36\u00d5\4\2\t\2"+ + "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3\36\u00d5\4\2\t\2"+ "\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13"+ "\t\13\4\f\t\f\4\r\t\r\4\16\t\16\3\2\3\2\3\2\3\3\3\3\5\3\"\n\3\7\3$\n\3"+ "\f\3\16\3\'\13\3\3\3\5\3*\n\3\3\4\3\4\3\4\3\4\3\4\7\4\61\n\4\f\4\16\4"+ @@ -1558,8 +1472,8 @@ private boolean unaryExpression_sempred(UnaryExpressionContext _localctx, int pr "\13\3\13\5\13\u00ba\n\13\3\13\3\13\3\13\5\13\u00bf\n\13\3\13\3\13\3\13"+ "\5\13\u00c4\n\13\3\f\3\f\3\f\3\f\3\f\3\f\3\f\5\f\u00cd\n\f\3\r\3\r\5\r"+ "\u00d1\n\r\3\16\3\16\3\16\3G\3\16\17\2\4\6\b\n\f\16\20\22\24\26\30\32"+ - "\2\4\4\2\f\f\33\33\4\2\5\5\36\36\u00f6\2\34\3\2\2\2\4%\3\2\2\2\6+\3\2"+ - "\2\2\bG\3\2\2\2\nM\3\2\2\2\fP\3\2\2\2\16b\3\2\2\2\20\u0084\3\2\2\2\22"+ + "\2\4\4\2\f\f\33\33\4\2\5\5\36\36\2\u00f6\2\34\3\2\2\2\4%\3\2\2\2\6+\3"+ + "\2\2\2\bG\3\2\2\2\nM\3\2\2\2\fP\3\2\2\2\16b\3\2\2\2\20\u0084\3\2\2\2\22"+ "\u009f\3\2\2\2\24\u00c3\3\2\2\2\26\u00cc\3\2\2\2\30\u00d0\3\2\2\2\32\u00d2"+ "\3\2\2\2\34\35\5\4\3\2\35\36\7\2\2\3\36\3\3\2\2\2\37!\5\n\6\2 \"\7\13"+ "\2\2! \3\2\2\2!\"\3\2\2\2\"$\3\2\2\2#\37\3\2\2\2$\'\3\2\2\2%#\3\2\2\2"+ diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/parser/sqf/SQFSyntaxProcessor.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/sqf/SQFSyntaxProcessor.java similarity index 62% rename from plugin/raven.sqdev.misc/src/raven/sqdev/parser/sqf/SQFSyntaxProcessor.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/sqf/SQFSyntaxProcessor.java index 21753e07..f7d566b6 100644 --- a/plugin/raven.sqdev.misc/src/raven/sqdev/parser/sqf/SQFSyntaxProcessor.java +++ b/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/sqf/SQFSyntaxProcessor.java @@ -15,7 +15,7 @@ import raven.sqdev.syntax.SyntaxElement; public class SQFSyntaxProcessor { - + /** * The command whose syntax should be checked */ @@ -29,8 +29,8 @@ public class SQFSyntaxProcessor { */ private EDataType[] rightArgumentTypes; /** - * Indicates whether the command has been validated with the provided - * argument types + * Indicates whether the command has been validated with the provided argument + * types */ private boolean validated; /** @@ -45,13 +45,13 @@ public class SQFSyntaxProcessor { * The relative position describing where the error marker should be placed */ private ERelativPosition markerPosition; - + public SQFSyntaxProcessor(SQFCommand command) { Assert.isNotNull(command); - + this.command = command; } - + /** * Sets the potential argument types of the left argument * @@ -62,7 +62,7 @@ public void setLeftArgumentTypes(EDataType[] types) { leftArgumentTypes = types; validated = false; } - + /** * Sets the potential argument types of the right argument * @@ -73,18 +73,18 @@ public void setRightArgumentTypes(EDataType[] types) { rightArgumentTypes = types; validated = false; } - + /** * Validates the given command with the provided argument types */ protected void validate() { validated = true; - + // check possible argument constellations the command accepts boolean canBeBinary = command.isBinaryOperator(); boolean canBeUnary = command.isUnaryOperator(); boolean canBeNular = command.isNularOperator(); - + // check arguments to determine which constellation can be achieved with // given arguments if (leftArgumentTypes != null && rightArgumentTypes != null) { @@ -94,64 +94,64 @@ protected void validate() { if (leftArgumentTypes == null && rightArgumentTypes != null) { canBeBinary = false; canBeNular = false; + } else { + if (leftArgumentTypes == null && rightArgumentTypes == null) { + canBeBinary = false; + canBeUnary = false; + } } } - + if (!(canBeBinary || canBeUnary || canBeNular)) { // the command can't be used with the given amount of arguments if (leftArgumentTypes != null && rightArgumentTypes != null) { // tried to use as binary operator - errorMessage = ProblemMessages - .operatorIsNotBinary(command.getKeyword()); - + errorMessage = ProblemMessages.operatorIsNotBinary(command.getKeyword()); + activeSyntax = null; - + return; } - + if (rightArgumentTypes != null) { if (command.isBinaryOperator()) { // command is binary but only one arg provided - errorMessage = ProblemMessages - .missingArgLeft(command.getKeyword()); - + errorMessage = ProblemMessages.missingArgLeft(command.getKeyword()); + activeSyntax = null; - + markerPosition = ERelativPosition.CENTER; } else { // operator is nular but has one argument provided - errorMessage = ProblemMessages - .operatorIsNular(command.getKeyword()); - + errorMessage = ProblemMessages.operatorIsNular(command.getKeyword()); + activeSyntax = null; - + markerPosition = ERelativPosition.CENTER; } - + return; } - + // command must be nular but there must be an argument provided - errorMessage = ProblemMessages - .operatorIsNotNular(command.getKeyword()); - + errorMessage = ProblemMessages.operatorIsNotNular(command.getKeyword()); + activeSyntax = null; - + markerPosition = ERelativPosition.RIGHT; - + return; } - - List possibleSyntaxes = new ArrayList( - command.getSyntaxes()); - + + List possibleSyntaxes = new ArrayList(command.getSyntaxes()); + DataTypeList validProvidedLeftTypes = new DataTypeList(); DataTypeList validGeneralLeftTypes = new DataTypeList(); DataTypeList validGeneralRightTypes = new DataTypeList(); - + for (int i = 0; i < possibleSyntaxes.size(); i++) { Syntax currentSyntax = possibleSyntaxes.get(i); - + // sort out syntaxes that can't be matched anyway if (currentSyntax.isBinary() && !canBeBinary) { possibleSyntaxes.set(i, null); @@ -165,71 +165,66 @@ protected void validate() { possibleSyntaxes.set(i, null); continue; } - + if (currentSyntax.isBinary()) { // directly check the left arg - DataTypeList validLeftArgTypes = getTypesForSide(currentSyntax, - true); + DataTypeList validLeftArgTypes = getTypesForSide(currentSyntax, true); boolean matched = false; - + // copy the possible types to store-list validGeneralLeftTypes.addAllUnique(validLeftArgTypes); - + // compare the provided types with the valid type for (EDataType currentType : leftArgumentTypes) { - if (validLeftArgTypes.containsExchangableType(currentType, - true)) { + if (validLeftArgTypes.containsExchangableType(currentType, true)) { matched = true; validProvidedLeftTypes.addUnique(currentType); } } - + if (!matched) { possibleSyntaxes.set(i, null); } } - + if (canBeNular && currentSyntax.isNular()) { // syntax has matched errorMessage = null; activeSyntax = currentSyntax; - + return; } } - + if (leftArgumentTypes != null && validProvidedLeftTypes.isEmpty()) { // left argument is invalid - errorMessage = ProblemMessages.ExpectedTypeButGot( - validGeneralLeftTypes.toArray( - new EDataType[validGeneralLeftTypes.size()]), + errorMessage = ProblemMessages.expectedTypeButGot( + validGeneralLeftTypes.toArray(new EDataType[validGeneralLeftTypes.size()]), leftArgumentTypes); - + activeSyntax = null; - + markerPosition = ERelativPosition.LEFT; return; } - + // check the provided right argument for (Syntax currentSyntax : possibleSyntaxes) { if (currentSyntax == null) { continue; } - - DataTypeList validRightTypes = getTypesForSide(currentSyntax, - false); - + + DataTypeList validRightTypes = getTypesForSide(currentSyntax, false); + // store valid types in list validGeneralRightTypes.addAllUnique(validRightTypes); - + // check provided arguments for (EDataType currentType : rightArgumentTypes) { - if (validRightTypes.containsExchangableType(currentType, - true)) { + if (validRightTypes.containsExchangableType(currentType, true)) { // The syntax has matched completely errorMessage = null; - + if (activeSyntax == null) { // Store the matched syntax activeSyntax = currentSyntax; @@ -237,31 +232,30 @@ protected void validate() { // There was a matching syntax before -> can't decide // which one is used activeSyntax = null; - + return; } } } } - - if(activeSyntax != null) { + + if (activeSyntax != null) { // There has been a matching syntax return; } - + // TODO: note the left arg ctx in the error msg if possible // The right argument is invalid as the program reached this part of the // code - errorMessage = ProblemMessages.ExpectedTypeButGot( - validGeneralRightTypes - .toArray(new EDataType[validGeneralRightTypes.size()]), + errorMessage = ProblemMessages.expectedTypeButGot( + validGeneralRightTypes.toArray(new EDataType[validGeneralRightTypes.size()]), rightArgumentTypes); - + activeSyntax = null; - + markerPosition = ERelativPosition.RIGHT; } - + /** * Checks whether it is valid to use the given command with the provided * argument types @@ -269,10 +263,10 @@ protected void validate() { public boolean isValid() { return getErrorMessage() == null; } - + /** - * Gets the error message stating why the current configuration of command - * and argument types is invalid + * Gets the error message stating why the current configuration of command and + * argument types is invalid * * @return The error message or null if there are no erros */ @@ -280,98 +274,22 @@ public String getErrorMessage() { if (!validated) { validate(); } - + return errorMessage; } - + /** - * Gets the relative position the error marker should be drawn at. The - * command itself is used as the center point + * Gets the relative position the error marker should be drawn at. The command + * itself is used as the center point */ public ERelativPosition getErrorMarkerPosition() { if (isValid()) { return ERelativPosition.NONE; } - + return markerPosition; } - - - /** - * Tries to apply the given argument types to the syntax on the right side - * of the command - * - * @param argumentTypes - * The set of types to test against the syntax - * @param offsets - * An array containing the start offset of the right argument and - * it's length in the editor - * @return Whether the types could be applied successfully - */ - /* - * public boolean applyRightArgument(EDataType[] argumentTypes, int[] - * offsets) { return applyArgument(argumentTypes, RIGHT, offsets); } - */ - - /** - * Tries to apply the given argument types to the syntax on the left side of - * the command - * - * @param argumentTypes - * The set of types to test against the syntax - * @param offsets - * An array containing the start offset of the left argument and - * it's length in the editor - * @return Whether the types could be applied successfully - */ - /* - * public boolean applyLeftArgument(EDataType[] argumentTypes, int[] - * offsets) { return applyArgument(argumentTypes, LEFT, offsets); } - */ - - /** - * Tests the argument at the given index against the given set of types - * - * @param argumentTypes - * The set of types to test - * @param leftSide - * Whether the left side argument should be tested - * @param offsets - * An array containing the start offset of the respective - * argument and it's length in the editor - * @return Whether the types could be applied successfully - */ - /* - * public boolean applyArgument(EDataType[] argumentTypes, boolean leftSide, - * int[] offsets) { List possibleTypes = new - * ArrayList(); - * - * for (Syntax currentSyntax : syntaxes) { if (leftSide && - * !currentSyntax.isBinary()) { // non-binary syntaxes can not have left - * arguments continue; } - * - * List currentlyPossibleTypes = getTypesForSide( currentSyntax, - * leftSide); - * - * for (EDataType currentType : argumentTypes) { if - * (currentlyPossibleTypes.contains(currentType)) { return true; } else { - * for (EDataType validType : currentlyPossibleTypes) { if - * (validType.canBeReplacedBy(currentType)) { return true; } else { if - * (currentType.canBeReplacedBy(validType)) { // TODO: potential error - * return true; } } } } } - * - * for (EDataType currentType : currentlyPossibleTypes) { if - * (!possibleTypes.contains(currentType)) { possibleTypes.add(currentType); - * } } } - * - * // create error marker editor.createMarker(IMarker.PROBLEM, offsets[0], - * offsets[1], ProblemMessages.ExpectedTypeButGot( possibleTypes - * .toArray(new EDataType[possibleTypes.size()]), argumentTypes), - * IMarker.SEVERITY_ERROR); - * - * return false; } - */ - + /** * Gets the possible argument types for one side of the given syntax * @@ -382,30 +300,26 @@ public ERelativPosition getErrorMarkerPosition() { * @return A list of possible data types */ private DataTypeList getTypesForSide(Syntax syntax, boolean leftSide) { - SyntaxElement element = syntax.getElement((leftSide) ? 0 - : ((syntax.isBinary()) ? 2 : (syntax.isNular()) ? 0 : 1)); - + SyntaxElement element = syntax + .getElement((leftSide) ? 0 : ((syntax.isBinary()) ? 2 : (syntax.isNular()) ? 0 : 1)); + if (!element.isLeafElement()) { - throw new SQDevCoreException( - "Expected element from the syntax for command \"" - + syntax.getCommandName() - + "\" to be a leaf element"); + throw new SQDevCoreException("Expected element from the syntax for command \"" + + syntax.getCommandName() + "\" to be a leaf element"); } - + DataTypeList dataTypes = new DataTypeList(); - - for (String currentType : element.toString() - .split(DataTypeList.TYPE_SEPERATOR)) { + + for (String currentType : element.toString().split(DataTypeList.TYPE_SEPERATOR)) { if (currentType.isEmpty()) { continue; } - + EDataType type = EDataType.resolve(currentType); - + if (type == null) { try { - throw new SQDevException( - "Unable to resolve type \"" + currentType + "\""); + throw new SQDevException("Unable to resolve type \"" + currentType + "\""); } catch (SQDevException e) { e.printStackTrace(); } @@ -415,14 +329,14 @@ private DataTypeList getTypesForSide(Syntax syntax, boolean leftSide) { } } } - + return dataTypes; } - + /** - * Gets the return values according to the command and the syntax it is used - * in. If the used syntax is invalid this function will return all of the - * command's return values + * Gets the return values according to the command and the syntax it is used in. + * If the used syntax is invalid this function will return all of the command's + * return values */ public DataTypeList getReturnValues() { if (activeSyntax == null) { diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/parser/sqf/SQFValidator.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/sqf/SQFValidator.java similarity index 66% rename from plugin/raven.sqdev.misc/src/raven/sqdev/parser/sqf/SQFValidator.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/sqf/SQFValidator.java index a5dedce9..73dfcdc6 100644 --- a/plugin/raven.sqdev.misc/src/raven/sqdev/parser/sqf/SQFValidator.java +++ b/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/sqf/SQFValidator.java @@ -9,6 +9,7 @@ import org.antlr.v4.runtime.ParserRuleContext; import org.antlr.v4.runtime.RuleContext; import org.antlr.v4.runtime.Token; +import org.antlr.v4.runtime.tree.ErrorNode; import org.antlr.v4.runtime.tree.ParseTree; import org.antlr.v4.runtime.tree.TerminalNode; import org.antlr.v4.runtime.tree.TerminalNodeImpl; @@ -52,13 +53,13 @@ * */ public class SQFValidator extends SQFBaseListener { - + /** - * The invoking state indicating that this context object has been created - * by this listener and therefore is not part of the original parseTree + * The invoking state indicating that this context object has been created by + * this listener and therefore is not part of the original parseTree */ protected static final int CREATED_STATE = -10; - + /** * The parse reult object that holds information about the parse result */ @@ -67,7 +68,7 @@ public class SQFValidator extends SQFBaseListener { * The information that are needed in order to parse the input properly */ private ISQFParseInformation info; - + /** * A list of found localVariables */ @@ -77,93 +78,87 @@ public class SQFValidator extends SQFBaseListener { */ private List globalVariables; /** - * The respective CommonTokenStream associated with the parse - * tree this listener corresponds to + * The respective CommonTokenStream associated with the parse tree + * this listener corresponds to */ private BufferedTokenStream stream; /** - * A map mapping ParserRuleContext objects to the respective return values - * in order to access them faster and in order to be able to handle context - * specific return values (The value is set right after teh expression has - * been parsed therefore the contextual information about which syntaxa has - * been used is still available at this time) + * A map mapping ParserRuleContext objects to the respective return values in + * order to access them faster and in order to be able to handle context + * specific return values (The value is set right after teh expression has been + * parsed therefore the contextual information about which syntaxa has been used + * is still available at this time) */ protected Map resolvedReturnValues; - - + /** * Creates a new instance of this validator. * * @param info - * The {@link SQFParseInformation} needed to parse the input - * properly + * The {@link SQFParseInformation} needed to parse the input properly * @param currentStream - * The CommonTokenStream associated with the - * respective parse tree + * The CommonTokenStream associated with the respective + * parse tree */ - public SQFValidator(ISQFParseInformation info, - BufferedTokenStream currentStream) { + public SQFValidator(ISQFParseInformation info, BufferedTokenStream currentStream) { this(info, null, currentStream); } - + /** * Creates a new instance of this validator. * * @param info - * The {@link SQFParseInformation} needed to parse the input - * properly + * The {@link SQFParseInformation} needed to parse the input properly * @param parseResult - * The {@link SQFParseResult} to report any parsing results to. - * If thi is null a new one will be created + * The {@link SQFParseResult} to report any parsing results to. If + * thi is null a new one will be created * @param currentStream - * The CommonTokenStream associated with the - * respective parse tree + * The CommonTokenStream associated with the respective + * parse tree */ - public SQFValidator(ISQFParseInformation info, SQFParseResult parseResult, - BufferedTokenStream currentStream) { + public SQFValidator(ISQFParseInformation info, SQFParseResult parseResult, BufferedTokenStream currentStream) { Assert.isNotNull(info); Assert.isNotNull(currentStream); - + this.info = info; this.stream = currentStream; - + if (parseResult != null) { this.parseResult = parseResult; } else { this.parseResult = new SQFParseResult(); } - + localVariables = new ArrayList(); globalVariables = new ArrayList(); - + resolvedReturnValues = new HashMap(); } - + @Override public void exitAssignment(AssignmentContext ctx) { String variableName = null; - + switch (ctx.getChildCount()) { - case 3: - variableName = ctx.getChild(0).getText(); - break; - - case 4: - variableName = ctx.getChild(1).getText(); - break; - - default: - try { - throw new SQDevEditorException( - "Unexpected child count in assignment"); - } catch (SQDevEditorException e) { - // TODO: log - e.printStackTrace(); - } + case 3: + variableName = ctx.getChild(0).getText(); + break; + + case 4: + variableName = ctx.getChild(1).getText(); + break; + + default: + try { + throw new SQDevEditorException("Unexpected child count in assignment"); + } catch (SQDevEditorException e) { + // TODO: log + e.printStackTrace(); + } } - + Variable variable = new Variable(variableName); - + if (variable.isLocal()) { if (!localVariables.contains(variable)) { localVariables.add(variable); @@ -174,39 +169,35 @@ public void exitAssignment(AssignmentContext ctx) { } } } - + @Override public void exitStart(StartContext ctx) { // end of document has been reached - + // set editors variables parseResult.setVariables(localVariables, globalVariables); } - + @Override public void exitCode(CodeContext ctx) { // Make sure semicolon is used when necessary StatementContext openStatement = null; - + for (int i = 0; i < ctx.getChildCount(); i++) { ParseTree currentChild = ctx.getChild(i); - + if (openStatement != null) { - if (currentChild instanceof TerminalNodeImpl - && currentChild.getText().equals(";")) { + if (currentChild instanceof TerminalNodeImpl && currentChild.getText().equals(";")) { // reset -> semicolon terminates statement openStatement = null; } else { if (currentChild instanceof StatementContext) { // a statement before the previous statement has been // closed -> create error - parseResult.addMarker(IMarker.PROBLEM, - openStatement.getStop().getStopIndex(), 1, - "Missing ';' at \"" - + openStatement.getStop().getText() - + "\"", + parseResult.addMarker(IMarker.PROBLEM, openStatement.getStop().getStopIndex(), 1, + ProblemMessages.missingSemicolon(openStatement.getStop().getText()), IMarker.SEVERITY_ERROR); - + // update the currently open statement openStatement = (StatementContext) currentChild; } @@ -215,9 +206,8 @@ public void exitCode(CodeContext ctx) { if (currentChild instanceof StatementContext) { // found the context that was handed over to this method openStatement = (StatementContext) currentChild; - - if (openStatement.getText().equals(";") - || endsWithMacro(openStatement)) { + + if (openStatement.getText().equals(";") || endsWithMacro(openStatement)) { // empty statements are allowed openStatement = null; } @@ -225,31 +215,30 @@ public void exitCode(CodeContext ctx) { } } } - + @Override public void exitInlineCode(InlineCodeContext ctx) { int start = ctx.getStart().getStartIndex(); int stop = ctx.getStop().getStopIndex(); - + ParserRuleContext parent = ctx.getParent(); ParserRuleContext previous = ctx; - + while (!(parent instanceof CodeContext)) { previous = parent; parent = parent.getParent(); } - + int offset = 0; - + if (parent.children.size() - 1 > parent.children.indexOf(previous)) { // there is a trailing semicolon that has to be folded as well offset = 1; - + // check for hidden tokens between bracket and semicolon List hiddenTokens = stream.getHiddenTokensToRight( - ((TerminalNode) ctx.children.get(ctx.children.size() - 1)) - .getSymbol().getTokenIndex()); - + ((TerminalNode) ctx.children.get(ctx.children.size() - 1)).getSymbol().getTokenIndex()); + if (hiddenTokens != null) { // include possible WS/comments/etc for (Token currentToken : hiddenTokens) { @@ -257,12 +246,11 @@ public void exitInlineCode(InlineCodeContext ctx) { } } } - + // add foldable area - parseResult.addFoldingArea(new Position(start, - stop - start + ctx.getStop().getText().length() + offset)); + parseResult.addFoldingArea(new Position(start, stop - start + ctx.getStop().getText().length() + offset)); } - + /** * Checks wheather the given RuleContext is a * @@ -273,16 +261,16 @@ private boolean endsWithMacro(ParseTree node) { if (node.getChildCount() == 0) { return false; } - + ParseTree endNode = node.getChild(node.getChildCount() - 1); - + if (endNode instanceof MacroContext) { return true; } else { return endsWithMacro(endNode); } } - + @Override public void enterBinaryExpression(BinaryExpressionContext ctx) { if (ctx.getChildCount() != 3) { @@ -292,28 +280,27 @@ public void enterBinaryExpression(BinaryExpressionContext ctx) { } else { // Because binary operators used with a unary syntax are still // labelled binaryExpression - + if (ctx.getChildCount() == 2) { // binary operator used as a unary operator // assemble new rule context - UnaryExpressionContext unaryCtx = new UnaryExpressionContext( - ctx, 0); + UnaryExpressionContext unaryCtx = new UnaryExpressionContext(ctx, 0); unaryCtx.addChild((TerminalNode) ctx.getChild(0)); unaryCtx.addChild((RuleContext) ctx.getChild(1)); unaryCtx.start = ctx.start; unaryCtx.stop = ctx.stop; - + // process rule enterUnaryExpression(unaryCtx); } } } else { String operatorName = ctx.getChild(1).getText(); - + extractVariableDeclaration(operatorName, ctx.getChild(2)); } } - + @Override public void exitBinaryExpression(BinaryExpressionContext ctx) { if (ctx.getChildCount() != 3) { @@ -323,12 +310,11 @@ public void exitBinaryExpression(BinaryExpressionContext ctx) { } else { // Because binary operators used with a unary/nular syntax are // still labelled binaryExpression - + if (ctx.getChildCount() == 2) { // binary operator used as a unary operator // assemble new rule context - UnaryExpressionContext unaryCtx = new UnaryExpressionContext( - ctx, 0); + UnaryExpressionContext unaryCtx = new UnaryExpressionContext(ctx, 0); unaryCtx.addChild((TerminalNode) ctx.getChild(0)); unaryCtx.addChild((RuleContext) ctx.getChild(1)); unaryCtx.start = ctx.start; @@ -339,152 +325,140 @@ public void exitBinaryExpression(BinaryExpressionContext ctx) { } else { // binary operator used as an operand // assemble new rule context - NularOperatorContext nularCtx = new NularOperatorContext( - new NularExpressionContext()); + NularOperatorContext nularCtx = new NularOperatorContext(new NularExpressionContext()); nularCtx.addChild((TerminalNode) ctx.getChild(0)); nularCtx.start = ctx.start; nularCtx.stop = ctx.stop; - + // process rule exitNularOperator(nularCtx); - + return; } } } - + String operatorName = ctx.getChild(1).getText(); - - SQFCommand operator = resolveOperator(info.getBinaryOperators(), - operatorName); - + + SQFCommand operator = resolveOperator(info.getBinaryOperators(), operatorName); + if (operator != null) { DataTypeList leftTypes = getReturnValues(ctx.getChild(0)); DataTypeList rightTypes = getReturnValues(ctx.getChild(2)); - + SQFSyntaxProcessor processor = new SQFSyntaxProcessor(operator); processor.setLeftArgumentTypes(leftTypes.toArray()); processor.setRightArgumentTypes(rightTypes.toArray()); - + if (!processor.isValid()) { String errorMsg = processor.getErrorMessage(); int[] offsets; - + switch (processor.getErrorMarkerPosition()) { - case CENTER: - offsets = getStartOffsetAndLength(ctx.getChild(1)); - break; - case LEFT: - offsets = getStartOffsetAndLength(ctx.getChild(0)); - break; - case RIGHT: - offsets = getStartOffsetAndLength(ctx.getChild(2)); - break; - case NONE: - default: - offsets = new int[] { 0, 1 }; - System.err.println( - "Unexpected marker position for binary expression"); - // TODO: log - + case CENTER: + offsets = getStartOffsetAndLength(ctx.getChild(1)); + break; + case LEFT: + offsets = getStartOffsetAndLength(ctx.getChild(0)); + break; + case RIGHT: + offsets = getStartOffsetAndLength(ctx.getChild(2)); + break; + case NONE: + default: + offsets = new int[] { 0, 1 }; + System.err.println("Unexpected marker position for binary expression"); + // TODO: log + } - - parseResult.addMarker(IMarker.PROBLEM, offsets[0], offsets[1], - errorMsg, IMarker.SEVERITY_ERROR); + + parseResult.addMarker(IMarker.PROBLEM, offsets[0], offsets[1], errorMsg, IMarker.SEVERITY_ERROR); } - + // map the resolved processor to the ctx object resolvedReturnValues.put(ctx, processor.getReturnValues()); } } - + @Override public void enterUnaryExpression(UnaryExpressionContext ctx) { if (ctx.getChildCount() != 2) { // it's actually a nular expression return; } - + String operatorName = ctx.getChild(0).getText(); - + extractVariableDeclaration(operatorName, ctx.getChild(1)); } - + @Override public void exitUnaryExpression(UnaryExpressionContext ctx) { if (ctx.getChildCount() != 2) { // it's actually a nular expression return; } - + String operatorName = ctx.getChild(0).getText(); - + SQFCommand operator = resolveOperator(operatorName); - + if (operator != null) { DataTypeList argumentTypes = getReturnValues(ctx.getChild(1)); - + SQFSyntaxProcessor processor = new SQFSyntaxProcessor(operator); - + processor.setRightArgumentTypes(argumentTypes.toArray()); - + if (!processor.isValid()) { String errorMsg = processor.getErrorMessage(); int[] offsets; - - if (processor - .getErrorMarkerPosition() == ERelativPosition.RIGHT) { + + if (processor.getErrorMarkerPosition() == ERelativPosition.RIGHT) { // error has to be on the right argument offsets = getStartOffsetAndLength(ctx.getChild(1)); } else { // error has to be on the operator itself offsets = getStartOffsetAndLength(ctx.getChild(0)); } - - parseResult.addMarker(IMarker.PROBLEM, offsets[0], offsets[1], - errorMsg, IMarker.SEVERITY_ERROR); + + parseResult.addMarker(IMarker.PROBLEM, offsets[0], offsets[1], errorMsg, IMarker.SEVERITY_ERROR); } - + // Map the resolved processor if (ctx.invokingState != CREATED_STATE) { resolvedReturnValues.put(ctx, processor.getReturnValues()); } else { // If the ctx has been self-created map the processor to the // actual parseTree element - resolvedReturnValues.put(ctx.getParent(), - processor.getReturnValues()); + resolvedReturnValues.put(ctx.getParent(), processor.getReturnValues()); } } else { // check if operator is a macro Macro macro = resolveMacro(info.getMacros(), operatorName); - + if (macro != null) { - resolvedReturnValues.put(ctx, - new DataTypeList(EDataType.ANYTHING)); + resolvedReturnValues.put(ctx, new DataTypeList(EDataType.ANYTHING)); } } } - + @Override public void exitNularOperator(NularOperatorContext ctx) { int start = ctx.getStart().getStartIndex(); - int length = ctx.getStart().getStopIndex() - - ctx.getStart().getStartIndex() + 1; + int length = ctx.getStart().getStopIndex() - ctx.getStart().getStartIndex() + 1; String msg = null; - + String operatorName = ctx.getText(); - - SQFCommand operator = resolveOperator(info.getNularOperators(), - operatorName); - + + SQFCommand operator = resolveOperator(info.getNularOperators(), operatorName); + if (operator == null) { - if (!isDefinedMacro(operatorName) - && !isDefinedLocalVariable(operatorName)) { + if (!isDefinedMacro(operatorName) && !isDefinedLocalVariable(operatorName)) { if (!isOperator(operatorName)) { if (operatorName.startsWith("_")) { // must be an unknown local variable - msg = ProblemMessages - .undefinedLocalVariable(operatorName); + msg = ProblemMessages.undefinedLocalVariable(operatorName); } else { // must be a globl variable globalVariables.add(new Variable(operatorName)); @@ -498,17 +472,16 @@ public void exitNularOperator(NularOperatorContext ctx) { if (!processor.isValid()) { msg = processor.getErrorMessage(); } - + // map the resolved operator to the ctx object resolvedReturnValues.put(ctx, processor.getReturnValues()); } - + if (msg != null) { - parseResult.addMarker(IMarker.PROBLEM, start, length, msg, - IMarker.SEVERITY_ERROR); + parseResult.addMarker(IMarker.PROBLEM, start, length, msg, IMarker.SEVERITY_ERROR); } } - + /** * Retrieves the SQFCommand out of the list that has the given * name. The search is case-insensitive! @@ -517,49 +490,48 @@ public void exitNularOperator(NularOperatorContext ctx) { * The list of commands to search through * @param commandName * The command name to search for - * @return The respective SQFCommand or null if - * none could be found + * @return The respective SQFCommand or null if none + * could be found */ - protected SQFCommand resolveOperator(List commandList, - String commandName) { + protected SQFCommand resolveOperator(List commandList, String commandName) { commandName = commandName.toLowerCase(); - + for (SQFCommand currentCommand : commandList) { if (currentCommand.getKeyword().toLowerCase().equals(commandName)) { return currentCommand; } } - + return null; } - + /** * Retrieves the SQFCommand out of the list that has the given * name. The search is case-insensitive! * * @param operatorName * The operator name to search for - * @return The respective SQFCommand or null if - * none could be found + * @return The respective SQFCommand or null if none + * could be found */ protected SQFCommand resolveOperator(String operatorName) { List allOperators = info.getNularOperators(); allOperators.addAll(info.getUnaryOperators()); allOperators.addAll(info.getBinaryOperators()); - + return resolveOperator(allOperators, operatorName); } - + /** - * Finds the Macro in the given list that has the given name. - * The search is case-sensitive! + * Finds the Macro in the given list that has the given name. The + * search is case-sensitive! * * @param macroList * The list of macros to search through * @param macroName * The name of the Macro to find - * @return The found Macro or null if none could - * be found + * @return The found Macro or null if none could be + * found */ protected Macro resolveMacro(List macroList, String macroName) { for (Macro currentMacro : macroList) { @@ -567,13 +539,12 @@ protected Macro resolveMacro(List macroList, String macroName) { return currentMacro; } } - + return null; } - + /** - * Checks whether there is a defined macro with the given name - * (case-sensitive) + * Checks whether there is a defined macro with the given name (case-sensitive) * * @param macroName * The macro name to search for @@ -581,22 +552,19 @@ protected Macro resolveMacro(List macroList, String macroName) { protected boolean isDefinedMacro(String macroName) { return resolveMacro(info.getMacros(), macroName) != null; } - + /** - * Checks whether there is an operator with the given name - * (case-insensitive) + * Checks whether there is an operator with the given name (case-insensitive) * * @param operatorName * The name to search for */ protected boolean isOperator(String operatorName) { return resolveOperator(info.getNularOperators(), operatorName) != null - || resolveOperator(info.getUnaryOperators(), - operatorName) != null - || resolveOperator(info.getBinaryOperators(), - operatorName) != null; + || resolveOperator(info.getUnaryOperators(), operatorName) != null + || resolveOperator(info.getBinaryOperators(), operatorName) != null; } - + /** * Checks whether there is a defined local variable of the given name * (case-insensitive) @@ -606,7 +574,7 @@ protected boolean isOperator(String operatorName) { */ protected boolean isDefinedLocalVariable(String varName) { varName = varName.toLowerCase(); - + for (Variable currentVariable : info.getMagicVariables()) { if (currentVariable.getKeyword().toLowerCase().equals(varName)) { return true; @@ -617,14 +585,14 @@ protected boolean isDefinedLocalVariable(String varName) { return true; } } - + return false; } - + /** - * Gets all possible return values for the given ParseTree - * element. this function buffers all return types it finds in order to - * allow quick access if needed again + * Gets all possible return values for the given ParseTree element. + * this function buffers all return types it finds in order to allow quick + * access if needed again * * @param element * The element to check @@ -634,16 +602,16 @@ protected DataTypeList getReturnValues(ParseTree element) { if (!resolvedReturnValues.containsKey(element)) { resolvedReturnValues.put(element, doGetReturnValues(element)); } - + return resolvedReturnValues.get(element); } - + /** - * Gets all possible return values for the given ParseTree - * element. This function should not be called at any other point than - * {@link #getReturnValues(ParseTree)} because it can't handle the return - * values of commands as those are processed elsewhere and then bufferedn - * into {@link #resolvedReturnValues} which is then accessed by + * Gets all possible return values for the given ParseTree element. + * This function should not be called at any other point than + * {@link #getReturnValues(ParseTree)} because it can't handle the return values + * of commands as those are processed elsewhere and then bufferedn into + * {@link #resolvedReturnValues} which is then accessed by * {@link #getReturnValues(ParseTree)} * * @param element @@ -655,96 +623,99 @@ private DataTypeList doGetReturnValues(ParseTree element) { if (resolvedReturnValues.containsKey(element)) { return resolvedReturnValues.get(element); } - + if (element.getClass().equals(MacroContext.class)) { return new DataTypeList(EDataType.ANYTHING); } - + if (element.getClass().equals(AssignmentContext.class)) { return new DataTypeList(EDataType.NOTHING); } - - if (element.getClass().equals(CodeContext.class) - || element.getClass().equals(InlineCodeContext.class)) { + + if (element.getClass().equals(CodeContext.class) || element.getClass().equals(InlineCodeContext.class)) { return new DataTypeList(EDataType.CODE); } - + if (element.getClass().equals(ArrayContext.class)) { return new DataTypeList(EDataType.ARRAY); } - + if (element.getClass().equals(ParenthesisContext.class)) { if (element.getChildCount() != 3) { // no args in parenthesis return new DataTypeList(EDataType.NOTHING); } - + return doGetReturnValues(element.getChild(1)); } - + /* * if (element.getClass().equals(BinaryExpressionContext.class)) { if - * (element.getChildCount() != 3) { // resolve for primary expression - * return getReturnValues(element.getChild(0)); } + * (element.getChildCount() != 3) { // resolve for primary expression return + * getReturnValues(element.getChild(0)); } * * String operatorName = element.getChild(1).getText(); * * return getOperatorReturnValues(operatorName); } */ - + if (element instanceof TerminalNodeImpl) { switch (((TerminalNodeImpl) element).getSymbol().getType()) { - case SQFParser.NUMBER: - return new DataTypeList(EDataType.NUMBER); - case SQFParser.STRING: - return new DataTypeList(EDataType.STRING); - default: - String varName = element.getText().toLowerCase(); - - // must be a variable | Can't be a command as the return - // value of a command would already been handled by - // getReturnValue() - if (!varName.startsWith("_")) { - // is global variable - boolean found = false; - - for (Variable currentVariable : globalVariables) { - if (currentVariable.getKeyword().toLowerCase() - .equals(varName)) { - found = true; - break; - } - } - - if (!found) { - // assume it's declared somewhere else - // TODO: potential error - globalVariables.add(new Variable(varName)); + case SQFParser.NUMBER: + return new DataTypeList(EDataType.NUMBER); + case SQFParser.STRING: + return new DataTypeList(EDataType.STRING); + default: + String varName = element.getText().toLowerCase(); + + // must be a variable | Can't be a command as the return + // value of a command would already been handled by + // getReturnValue() + if (!varName.startsWith("_")) { + // is global variable + boolean found = false; + + for (Variable currentVariable : globalVariables) { + if (currentVariable.getKeyword().toLowerCase().equals(varName)) { + found = true; + break; } } + + if (!found) { + // assume it's declared somewhere else + // TODO: potential error + globalVariables.add(new Variable(varName)); + } + } } - + // a variable can be anything return new DataTypeList(EDataType.ANYTHING); } - + if (element instanceof CommonErrorContext) { // return values of errors are undefined return new DataTypeList(EDataType.ANYTHING); } - + if (element.getChildCount() != 1) { - // TODO: gets reached on unbalanced braces - throw new SQDevCoreException( - "Unexpected program flow in SQF syntax checking"); + // return values of errors are undefined + for (int i = 0; i < element.getChildCount(); i++) { + if (element.getChild(i) instanceof ErrorNode) { + return new DataTypeList(EDataType.ANYTHING); + } + } + + throw new SQDevCoreException("Unexpected program flow in SQF syntax checking"); } else { return doGetReturnValues(element.getChild(0)); } } - + /** - * Searches if the left hand path of this ParseTree node contains a node of - * the given class + * Searches if the left hand path of this ParseTree node contains a node of the + * given class * * @param node * The node to search through @@ -756,17 +727,17 @@ protected ParseTree getLeftNodeOfClass(ParseTree node, Class cl) { if (node == null || node.getClass().equals(cl) || node == null) { return node; } - + if (node.getChildCount() > 0) { return getLeftNodeOfClass(node.getChild(0), cl); } else { return null; } } - + /** - * Searches if the right hand path of this ParseTree node contains a node of - * the given class + * Searches if the right hand path of this ParseTree node contains a node of the + * given class * * @param node * The node to search through @@ -778,288 +749,237 @@ protected ParseTree getRightNodeOfClass(ParseTree node, Class cl) { if (node == null || node.getClass().equals(cl) || node == null) { return node; } - + if (node.getChildCount() > 0) { - return getRightNodeOfClass(node.getChild(node.getChildCount() - 1), - cl); + return getRightNodeOfClass(node.getChild(node.getChildCount() - 1), cl); } else { return null; } } - + /** * Gets the start offset and the length of the given node * * @param node * The node's whose offset should be determined - * @return An two-dimensional array containing the start offset and the - * length + * @return An two-dimensional array containing the start offset and the length */ protected int[] getStartOffsetAndLength(ParseTree node) { - TerminalNodeImpl startNode = (TerminalNodeImpl) getLeftNodeOfClass(node, - TerminalNodeImpl.class); - TerminalNodeImpl endNode = (TerminalNodeImpl) getRightNodeOfClass(node, - TerminalNodeImpl.class); - + TerminalNodeImpl startNode = (TerminalNodeImpl) getLeftNodeOfClass(node, TerminalNodeImpl.class); + TerminalNodeImpl endNode = (TerminalNodeImpl) getRightNodeOfClass(node, TerminalNodeImpl.class); + if (startNode == null) { SQDevInfobox info = new SQDevInfobox( - "Error while searching for the start index of \"" - + node.getText() + "\"", - SWT.ICON_ERROR); - + "Error while searching for the start index of \"" + node.getText() + "\"", SWT.ICON_ERROR); + info.open(false); - + return new int[] { 0, 0 }; } else { if (endNode == null) { SQDevInfobox info = new SQDevInfobox( - "Error while searching for the end index of \"" - + node.getText() + "\"", - SWT.ICON_ERROR); - + "Error while searching for the end index of \"" + node.getText() + "\"", SWT.ICON_ERROR); + info.open(false); - + return new int[] { startNode.getSymbol().getStartIndex(), 1 }; } } - + return new int[] { startNode.getSymbol().getStartIndex(), - endNode.getSymbol().getStopIndex() - - startNode.getSymbol().getStartIndex() + 1 }; + endNode.getSymbol().getStopIndex() - startNode.getSymbol().getStartIndex() + 1 }; } - + /** * Extracts a variable declaration out of an operator and it's respective * argument * * @param operatorName - * The name of the operator declaring the variable (can be - * "private" or "params") + * The name of the operator declaring the variable (can be "private" + * or "params") * @param argument * The argument node the operator receives */ - protected void extractVariableDeclaration(String operatorName, - ParseTree argument) { + protected void extractVariableDeclaration(String operatorName, ParseTree argument) { List declaredVariables = new ArrayList(); - + // Get variable declarations via "params" and "private" switch (operatorName.toLowerCase()) { - case "params": - ArrayContext array = (ArrayContext) getLeftNodeOfClass(argument, - ArrayContext.class); - - if (array == null) { - // some weird shit is going on -> warn about it - int offsets[] = getStartOffsetAndLength(argument); - - parseResult.addMarker(IMarker.PROBLEM, offsets[0], - offsets[1], - ProblemMessages.failedVarProcessingExpectedArray(), - IMarker.SEVERITY_WARNING); - - break; - } - - for (int i = 1; i < array.getChildCount() - 1; i++) { - ParseTree currentElement = array.getChild(i); - - if (currentElement instanceof TerminalNodeImpl) { - if (((TerminalNodeImpl) currentElement).getSymbol() - .getType() == SQFParser.COMMA) { - continue; + case "params": + ArrayContext array = (ArrayContext) getLeftNodeOfClass(argument, ArrayContext.class); + + if (array == null) { + // some weird shit is going on -> warn about it + int offsets[] = getStartOffsetAndLength(argument); + + parseResult.addMarker(IMarker.PROBLEM, offsets[0], offsets[1], + ProblemMessages.failedVarProcessingExpectedArray(), IMarker.SEVERITY_WARNING); + + break; + } + + for (int i = 1; i < array.getChildCount() - 1; i++) { + ParseTree currentElement = array.getChild(i); + + if (currentElement instanceof TerminalNodeImpl) { + if (((TerminalNodeImpl) currentElement).getSymbol().getType() == SQFParser.COMMA) { + continue; + } + + getVariableDeclaration((TerminalNodeImpl) currentElement, declaredVariables, true); + } else { + boolean wrongType = true; + ArrayContext arrayNode = (ArrayContext) getLeftNodeOfClass(currentElement, ArrayContext.class); + + if (arrayNode != null) { + TerminalNodeImpl stringNode = (TerminalNodeImpl) getLeftNodeOfClass(arrayNode.getChild(1), + TerminalNodeImpl.class); + + if (stringNode != null) { + wrongType = false; + getVariableDeclaration(stringNode, declaredVariables, true); } - - getVariableDeclaration( - (TerminalNodeImpl) currentElement, - declaredVariables, true); } else { - boolean wrongType = true; - ArrayContext arrayNode = (ArrayContext) getLeftNodeOfClass( - currentElement, ArrayContext.class); - - if (arrayNode != null) { - TerminalNodeImpl stringNode = (TerminalNodeImpl) getLeftNodeOfClass( - arrayNode.getChild(1), + StringContext stringNode = (StringContext) getLeftNodeOfClass(currentElement, + StringContext.class); + + if (stringNode != null) { + // The variable is just declared via a String + // representing it's name + wrongType = false; + + TerminalNodeImpl terminalNode = (TerminalNodeImpl) getLeftNodeOfClass(stringNode, TerminalNodeImpl.class); - - if (stringNode != null) { - wrongType = false; - getVariableDeclaration(stringNode, - declaredVariables, true); - } - } else { - StringContext stringNode = (StringContext) getLeftNodeOfClass( - currentElement, StringContext.class); - - if (stringNode != null) { - // The variable is just declared via a String - // representing it's name - wrongType = false; - - TerminalNodeImpl terminalNode = (TerminalNodeImpl) getLeftNodeOfClass( - stringNode, TerminalNodeImpl.class); - - getVariableDeclaration(terminalNode, - declaredVariables, true); - } - } - - if (wrongType) { - int offsets[] = getStartOffsetAndLength( - currentElement); - - parseResult.addMarker(IMarker.PROBLEM, offsets[0], - offsets[1], - ProblemMessages.expectedTypes( - new EDataType[] { EDataType.STRING, - EDataType.ARRAY }), - IMarker.SEVERITY_ERROR); + + getVariableDeclaration(terminalNode, declaredVariables, true); } } + + if (wrongType) { + int offsets[] = getStartOffsetAndLength(currentElement); + + parseResult.addMarker(IMarker.PROBLEM, offsets[0], offsets[1], + ProblemMessages.expectedTypes(new EDataType[] { EDataType.STRING, EDataType.ARRAY }), + IMarker.SEVERITY_ERROR); + } } - break; - case "private": - if (argument.getChild(0) instanceof ArrayContext) { - for (int i = 1; i < argument.getChild(0).getChildCount() - - 1; i++) { - ParseTree currentElement = argument.getChild(0) - .getChild(i); - - currentElement = getLeftNodeOfClass(currentElement, - TerminalNodeImpl.class); - - if (currentElement instanceof TerminalNodeImpl) { - if (((TerminalNodeImpl) currentElement).getSymbol() - .getType() == SQFParser.COMMA) { - continue; - } - - getVariableDeclaration( - (TerminalNodeImpl) currentElement, - declaredVariables, false); - } else { - int offsets[] = getStartOffsetAndLength( - currentElement); - - parseResult.addMarker(IMarker.PROBLEM, offsets[0], - offsets[1], - ProblemMessages.expectedTypes( - new EDataType[] { EDataType.STRING, - EDataType.ARRAY }), - IMarker.SEVERITY_ERROR); + } + break; + case "private": + if (argument.getChild(0) instanceof ArrayContext) { + for (int i = 1; i < argument.getChild(0).getChildCount() - 1; i++) { + ParseTree currentElement = argument.getChild(0).getChild(i); + + currentElement = getLeftNodeOfClass(currentElement, TerminalNodeImpl.class); + + if (currentElement instanceof TerminalNodeImpl) { + if (((TerminalNodeImpl) currentElement).getSymbol().getType() == SQFParser.COMMA) { + continue; } - } - } else { - if (argument.getChild(0) instanceof StringContext) { - // get varaible dec from the terminal node of the string - getVariableDeclaration((TerminalNodeImpl) argument - .getChild(0).getChild(0), declaredVariables, - false); + + getVariableDeclaration((TerminalNodeImpl) currentElement, declaredVariables, false); } else { - int offsets[] = getStartOffsetAndLength(argument); - - parseResult.addMarker(IMarker.PROBLEM, offsets[0], - offsets[1], - ProblemMessages.expectedTypes(new EDataType[] { - EDataType.STRING, EDataType.ARRAY }), + int offsets[] = getStartOffsetAndLength(currentElement); + + parseResult.addMarker(IMarker.PROBLEM, offsets[0], offsets[1], + ProblemMessages.expectedTypes(new EDataType[] { EDataType.STRING, EDataType.ARRAY }), IMarker.SEVERITY_ERROR); } } - - break; - - case "for": - StringContext varString = (StringContext) getLeftNodeOfClass( - argument, StringContext.class); - - if (varString != null) { - // get name without quotes - String varName = varString.getText().substring(1, - varString.getText().length() - 1); - - if (varName.isEmpty()) { - // may not be empty -> create error + } else { + if (argument.getChild(0) instanceof StringContext) { + // get varaible dec from the terminal node of the string + getVariableDeclaration((TerminalNodeImpl) argument.getChild(0).getChild(0), declaredVariables, + false); + } else { + int offsets[] = getStartOffsetAndLength(argument); + + parseResult.addMarker(IMarker.PROBLEM, offsets[0], offsets[1], + ProblemMessages.expectedTypes(new EDataType[] { EDataType.STRING, EDataType.ARRAY }), + IMarker.SEVERITY_ERROR); + } + } + + break; + + case "for": + StringContext varString = (StringContext) getLeftNodeOfClass(argument, StringContext.class); + + if (varString != null) { + // get name without quotes + String varName = varString.getText().substring(1, varString.getText().length() - 1); + + if (varName.isEmpty()) { + // may not be empty -> create error + int[] offsets = getStartOffsetAndLength(varString); + + parseResult.addMarker(IMarker.PROBLEM, offsets[0], offsets[1], + ProblemMessages.stringMayNotBeEmpty(), IMarker.SEVERITY_ERROR); + } else { + if (!varName.startsWith("_")) { + // can only declare local variable -> create error int[] offsets = getStartOffsetAndLength(varString); - - parseResult.addMarker(IMarker.PROBLEM, offsets[0], - offsets[1], - ProblemMessages.stringMayNotBeEmpty(), - IMarker.SEVERITY_ERROR); + + parseResult.addMarker(IMarker.PROBLEM, offsets[0], offsets[1], + ProblemMessages.canOnlyDeclareLocalVariable(), IMarker.SEVERITY_ERROR); } else { - if (!varName.startsWith("_")) { - // can only declare local variable -> create error - int[] offsets = getStartOffsetAndLength(varString); - - parseResult.addMarker(IMarker.PROBLEM, offsets[0], - offsets[1], - ProblemMessages - .canOnlyDeclareLocalVariable(), - IMarker.SEVERITY_ERROR); - } else { - localVariables.add(new Variable(varName)); - } + localVariables.add(new Variable(varName)); } } + } } - + localVariables.addAll(declaredVariables); } - + /** * Extracts a variable name out of a TerminalNode * * @param node * The node to extract the variable name from * @param varlist - * The list of variables a successfull declaration should be - * added to + * The list of variables a successfull declaration should be added to * @param allowEmpty * Whether an empty String is a valid input at this point */ - private void getVariableDeclaration(TerminalNodeImpl node, - List varlist, boolean allowEmpty) { + private void getVariableDeclaration(TerminalNodeImpl node, List varlist, boolean allowEmpty) { int start = node.symbol.getStartIndex(); - int length = node.symbol.getStopIndex() - node.symbol.getStartIndex() - + 1; - + int length = node.symbol.getStopIndex() - node.symbol.getStartIndex() + 1; + if (node.symbol.getType() == SQFParser.STRING) { String varName = node.getText(); // remove quotes varName = varName.substring(1, varName.length() - 1); - + if (varName.isEmpty()) { if (allowEmpty) { // empty String is fine return; } else { // empty String is invalid - parseResult.addMarker(IMarker.PROBLEM, start, length, - ProblemMessages.stringMayNotBeEmpty(), + parseResult.addMarker(IMarker.PROBLEM, start, length, ProblemMessages.stringMayNotBeEmpty(), IMarker.SEVERITY_ERROR); } } - + if (varName.contains(" ")) { - parseResult.addMarker(IMarker.PROBLEM, start, length, - ProblemMessages.variableMayNotContainBlank(), + parseResult.addMarker(IMarker.PROBLEM, start, length, ProblemMessages.variableMayNotContainBlank(), IMarker.SEVERITY_ERROR); } else { if (varName.startsWith("_")) { varlist.add(new Variable(varName)); } else { - parseResult.addMarker(IMarker.PROBLEM, start, length, - ProblemMessages.canOnlyDeclareLocalVariable(), + parseResult.addMarker(IMarker.PROBLEM, start, length, ProblemMessages.canOnlyDeclareLocalVariable(), IMarker.SEVERITY_ERROR); } } } else { parseResult.addMarker(IMarker.PROBLEM, start, length, - ProblemMessages.expectedTypes(new EDataType[] { - EDataType.STRING, EDataType.ARRAY }), + ProblemMessages.expectedTypes(new EDataType[] { EDataType.STRING, EDataType.ARRAY }), IMarker.SEVERITY_ERROR); } } - + /** * Gets the parse result. This implementation always returns an instance of * {@link SQFParseResult}. diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/parser/sqf/SQFVisitor.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/sqf/SQFVisitor.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/parser/sqf/SQFVisitor.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/sqf/SQFVisitor.java diff --git a/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/sqf/tests/SQFParserTest.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/sqf/tests/SQFParserTest.java new file mode 100644 index 00000000..4e3300c7 --- /dev/null +++ b/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/sqf/tests/SQFParserTest.java @@ -0,0 +1,438 @@ +package raven.sqdev.parser.sqf.tests; + +import static org.junit.Assert.*; + +import java.io.File; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.List; + +import org.eclipse.core.resources.IMarker; +import org.junit.Test; + +import raven.sqdev.constants.ProblemMessages; +import raven.sqdev.exceptions.SQDevException; +import raven.sqdev.infoCollection.base.Keyword; +import raven.sqdev.interfaces.ISQFParseInformation; +import raven.sqdev.misc.EDataType; +import raven.sqdev.misc.FileUtil; +import raven.sqdev.misc.Macro; +import raven.sqdev.misc.Marker; +import raven.sqdev.parser.misc.ParseUtil; +import raven.sqdev.parser.sqf.SQFParseInformation; +import raven.sqdev.parser.sqf.SQFParseResult; + +public class SQFParserTest { + + public static final File KEYWORD_FILE = new File( + makeOSCompatible(System.getProperty("user.dir") + "/resources/sqf/SQFKeywords.txt")); + + public static final String BASE_PATH = System.getProperty("user.dir") + + "/src/raven/sqdev/parser/sqf/tests/TestScripts/"; + public static final String VARIABLE_DECLARATION_PATH = BASE_PATH + "VariableDeclaration.sqf"; + public static final File VARIABLE_DECLARATION = new File(makeOSCompatible(VARIABLE_DECLARATION_PATH)); + + @Test + public void variableDeclarations() { + SQFParseResult result = process(getContent(VARIABLE_DECLARATION)); + + // Assert that there are no errors in this file + assertTrue("The file \"" + VARIABLE_DECLARATION_PATH + "\" is not expected to contain erros!", + result.getMarkers().size() == 0); + + // Check local variable declarations + final String[] localVariables = new String[] { "_myTestVar1", "_myTestVar2", "_parameter1", "_parameter2", + "_parameter4", "_innerVariable", "_forVar", "_innerForVar", "_private1", "_private2", "_private3", + "_ifVar" }; + + List definedLocalVariables = Arrays.asList(localVariables); + List foundLocalVariables = getKeywords(result.getDeclaredLocalVariables()); + + if (!collectionContentEqual(definedLocalVariables, foundLocalVariables)) { + StringBuilder msg = new StringBuilder("The found declarations don't match with the expected ones"); + + List missing = new ArrayList(definedLocalVariables); + missing.removeAll(foundLocalVariables); + + List foundFalse = new ArrayList(foundLocalVariables); + foundFalse.removeAll(definedLocalVariables); + + if (missing.size() > 0) { + msg.append("\n\tMissing local variables: " + missing.toString()); + } + if (foundFalse.size() > 0) { + msg.append("\n\tFalsely found local variables: " + foundFalse.toString()); + } + + fail(msg.toString()); + } + + // Check global variable declarations + final String[] globalVariables = new String[] { "GlobalTestVar", "Implicit1", "Implicit2", "Implicit3" }; + List definedGlobalVariables = Arrays.asList(globalVariables); + List foundGlobalVariables = getKeywords(result.getDeclaredGlobalVariables()); + + if (!collectionContentEqual(definedGlobalVariables, foundGlobalVariables)) { + StringBuilder msg = new StringBuilder("The found declarations don't match with the expected ones"); + + List missing = new ArrayList(definedGlobalVariables); + missing.removeAll(foundGlobalVariables); + + List foundFalse = new ArrayList(foundGlobalVariables); + foundFalse.removeAll(definedGlobalVariables); + + if (missing.size() > 0) { + msg.append("\n\tMissing global variables: " + missing.toString()); + } + if (foundFalse.size() > 0) { + msg.append("\n\tFalsely found global variables: " + foundFalse.toString()); + } + + fail(msg.toString()); + } + } + + @Test + public void error_typeMismatch() { + String input; + SQFParseResult result; + Marker expectedMarker; + + + input = "hint 3"; + result = process(input); + expectedMarker = createErrorMarker(5, 1, ProblemMessages.expectedTypeButGot( + new EDataType[] { EDataType.STRING, EDataType.STRUCTURED_TEXT }, new EDataType[] { EDataType.NUMBER })); + // Do the checking + assertMarkerAmountEquals(result, 1); + assertMarkersEqual(expectedMarker, result.getMarkers().get(0)); + + + input = "\"\" append []"; + result = process(input); + expectedMarker = createErrorMarker(0, 2, + ProblemMessages.expectedTypeButGotDifferent(EDataType.ARRAY.toString(), EDataType.STRING.toString())); + // Do the checking + assertMarkerAmountEquals(result, 1); + assertMarkersEqual(expectedMarker, result.getMarkers().get(0)); + + + input = "[] append \"\""; + result = process(input); + expectedMarker = createErrorMarker(10, 2, + ProblemMessages.expectedTypeButGotDifferent(EDataType.ARRAY.toString(), EDataType.STRING.toString())); + // Do the checking + assertMarkerAmountEquals(result, 1); + assertMarkersEqual(expectedMarker, result.getMarkers().get(0)); + + + input = "+objNull"; + result = process(input); + expectedMarker = createErrorMarker(1, 7, + ProblemMessages.expectedTypeButGot( + new EDataType[] { EDataType.NUMBER, EDataType.ARRAY, EDataType.STRING }, + new EDataType[] { EDataType.OBJECT })); + // Do the checking + assertMarkerAmountEquals(result, 1); + assertMarkersEqual(expectedMarker, result.getMarkers().get(0)); + + + input = "'hello' + objNull"; + result = process(input); + expectedMarker = createErrorMarker(10, 7, + ProblemMessages.expectedTypeButGotDifferent(EDataType.STRING.toString(), EDataType.OBJECT.toString())); + // Do the checking + assertMarkerAmountEquals(result, 1); + assertMarkersEqual(expectedMarker, result.getMarkers().get(0)); + + input = "velocity ''"; + result = process(input); + expectedMarker = createErrorMarker(9, 2, + ProblemMessages.expectedTypeButGotDifferent(EDataType.OBJECT.toString(), EDataType.STRING.toString())); + // Do the checking + assertMarkerAmountEquals(result, 1); + assertMarkersEqual(expectedMarker, result.getMarkers().get(0)); + } + + @Test + public void error_missingSemicolon() { + String input; + SQFParseResult result; + Marker expectedMarker; + List macros = new ArrayList(); + macros.add(new Macro("CHECK_TRUE")); + + + input = "diag_log 3 hint 'hello'"; + result = process(input); + expectedMarker = createErrorMarker(9, 1, + ProblemMessages.missingSemicolon("3")); + // Do the checking + assertMarkerAmountEquals(result, 1); + assertMarkersEqual(expectedMarker, result.getMarkers().get(0)); + + + input = "CHECK_TRUE(nsdvjJSDNV, SAKFN) diag_log 3 hint 'hello'"; + result = process(input, macros); + expectedMarker = createErrorMarker(39, 1, + ProblemMessages.missingSemicolon("3")); + // Do the checking + assertMarkerAmountEquals(result, 1); + assertMarkersEqual(expectedMarker, result.getMarkers().get(0)); + + + input = "CHECK_TRUE(nsdvjJSDNV, SAKFN) player setPos [1,2,3] hint 'hello'"; + result = process(input, macros); + expectedMarker = createErrorMarker(50, 1, + ProblemMessages.missingSemicolon("]")); + // Do the checking + assertMarkerAmountEquals(result, 1); + assertMarkersEqual(expectedMarker, result.getMarkers().get(0)); + } + + @Test + public void error_unbalancedCharacterPair() { + String input; + SQFParseResult result; + Marker expectedMarker; + + + input = "hint (3;"; + result = process(input); + expectedMarker = createErrorMarker(5, 1, ProblemMessages.unclosedOpener('(')); + // Do the checking + assertMarkerAmountEquals(result, 1); + assertMarkersEqual(expectedMarker, result.getMarkers().get(0)); + + + input = "hint '3;"; + result = process(input); + expectedMarker = createErrorMarker(5, 1, ProblemMessages.unclosedOpener('\'')); + // Do the checking + assertMarkerAmountEquals(result, 1); + assertMarkersEqual(expectedMarker, result.getMarkers().get(0)); + + + input = "hint \"3;"; + result = process(input); + expectedMarker = createErrorMarker(5, 1, ProblemMessages.unclosedOpener('"')); + // Do the checking + assertMarkerAmountEquals(result, 1); + assertMarkersEqual(expectedMarker, result.getMarkers().get(0)); + + input = "hint [3;"; + result = process(input); + expectedMarker = createErrorMarker(5, 1, ProblemMessages.unclosedOpener('[')); + // Do the checking + assertMarkerAmountEquals(result, 1); + assertMarkersEqual(expectedMarker, result.getMarkers().get(0)); + + + input = "hint {3;"; + result = process(input); + expectedMarker = createErrorMarker(5, 1, ProblemMessages.unclosedOpener('{')); + // Do the checking + assertMarkerAmountEquals(result, 1); + assertMarkersEqual(expectedMarker, result.getMarkers().get(0)); + + + input = "hint '');"; + result = process(input); + expectedMarker = createErrorMarker(7, 1, ProblemMessages.invalidClosingCharacter(')')); + // Do the checking + assertMarkerAmountEquals(result, 1); + assertMarkersEqual(expectedMarker, result.getMarkers().get(0)); + + + input = "hint ''];"; + result = process(input); + expectedMarker = createErrorMarker(7, 1, ProblemMessages.invalidClosingCharacter(']')); + // Do the checking + assertMarkerAmountEquals(result, 1); + assertMarkersEqual(expectedMarker, result.getMarkers().get(0)); + + + input = "hint ''};"; + result = process(input); + expectedMarker = createErrorMarker(7, 1, ProblemMessages.invalidClosingCharacter('}')); + // Do the checking + assertMarkerAmountEquals(result, 1); + assertMarkersEqual(expectedMarker, result.getMarkers().get(0)); + } + + /** + * Checks whether the given two markers are equal. It fails the test if not + * + * @param expected + * The marker that the actual one is expected to be + * @param actual + * The marker to check + */ + protected static void assertMarkersEqual(Marker expected, Marker actual) { + if (expected.equals(actual)) { + return; + } + + fail(expected.createDifferenceMessage(actual)); + } + + /** + * Checks whether the given parseResult contains the given amount of markers + * + * @param result + * The {@link SQFParseResult} to check + * @param amount + * The amount of markers that are expected to be present + */ + protected static void assertMarkerAmountEquals(SQFParseResult result, int amount) { + if (result.getMarkers().size() == amount) { + return; + } + + if (result.getMarkers().size() == 0) { + fail("The expected error has not been found!"); + } else { + fail("Too many erros have been detected! (" + result.getMarkers().size() + " instead of " + amount + ")"); + } + } + + /** + * Creates an error marker with the given information + * + * @param offset + * The marker's offset + * @param length + * The marker's length + * @param msg + * The marker's message + * @return The created marker + */ + protected static Marker createErrorMarker(int offset, int length, String msg) { + return new Marker(IMarker.PROBLEM, offset, length, msg, IMarker.SEVERITY_ERROR); + } + + /** + * Creates a warning marker with the given information + * + * @param offset + * The marker's offset + * @param length + * The marker's length + * @param msg + * The marker's message + * @return The created marker + */ + protected static Marker createWarningMarker(int offset, int length, String msg) { + return new Marker(IMarker.PROBLEM, offset, length, msg, IMarker.SEVERITY_WARNING); + } + + /** + * Parses and validates the given input as SQF code + * + * @param input + * The input to process + * @param macros + * The list of macros that should be existant in the given input + * @return The resulting {@link SQFParseResult} + */ + protected static SQFParseResult process(String input, List macros) { + return ParseUtil.parseAndValidateSQF(input, getSQFParseInformation(macros)); + } + + /** + * Parses and validates the given input as SQF code. It assumes that there are + * no macros defined + * + * @param input + * The input to process + * @return The resulting {@link SQFParseResult} + */ + protected static SQFParseResult process(String input) { + return process(input, new ArrayList()); + } + + /** + * Makes the given path (that uses "/" as a FileSeparator) compatible with the + * current OS by using the actual OS-FileSeparator + * + * @param path + * The path to process + * @return The processed path + */ + protected static String makeOSCompatible(String path) { + return path.replace("/", File.separator); + } + + /** + * Gets the content of the given file as a String + * + * @param file + * The respective file + * @return The file's content + */ + protected static String getContent(File file) { + try { + return FileUtil.getContent(file); + } catch (SQDevException e) { + e.printStackTrace(); + throw new RuntimeException(e); + } + } + + /** + * Gets the needed SQFInformation + * + * @param macros + * The macro-list that should be used + */ + protected static ISQFParseInformation getSQFParseInformation(List macros) { + return new SQFParseInformation(macros) { + @Override + protected String getKeywordContent() { + try { + return FileUtil.getContent(KEYWORD_FILE); + } catch (SQDevException e) { + e.printStackTrace(); + throw new RuntimeException(e); + } + } + }; + } + + /** + * Gets the keywords of the all the {@link Keyword}s contained in the given + * collection + * + * @param list + * The collection of {@link Keyword}s + * @return The respective keywords as Strings + */ + public static List getKeywords(Collection list) { + List keywords = new ArrayList(); + + for (Keyword current : list) { + keywords.add(current.getKeyword()); + } + + return keywords; + } + + /** + * Checks whether the given collections have the same content + * + * @param collection1 + * The first collection + * @param collection2 + * The second collection + * @return True if both collections have the same content. + * False otherwise + */ + public static boolean collectionContentEqual(Collection collection1, Collection collection2) { + if (collection1.size() != collection2.size()) { + return false; + } + + return collection1.containsAll(collection2); + } +} diff --git a/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/sqf/tests/TestScripts/VariableDeclaration.sqf b/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/sqf/tests/TestScripts/VariableDeclaration.sqf new file mode 100644 index 00000000..87237edd --- /dev/null +++ b/plugin/Raven.SQDev.Misc/src/raven/sqdev/parser/sqf/tests/TestScripts/VariableDeclaration.sqf @@ -0,0 +1,39 @@ +_myTestVar1 = 5; +_myTestVar2 = getPos player; + +params [ + ["_parameter1", nil, [0]], + ["_parameter2", nil, [[], 4]], + ["", nil, []], + ["_parameter4", nil, ["", objNull]] +]; + +{ + GlobalTestVar = "Hello World"; + + if (isNil "Miau") then { + _innerVariable = ["Hello", "There", "You", "Stranger"]; + + for "_forVar" from 0 to 12 step 3 do { + for[{_innerForVar = 0},{_innerForVar < 5},{_innerForVar = _innerForVar + 1}] do { + + }; + }; + }; +} count []; + +private ["_private1", "_private2"]; + +private _private3 = "Ola"; +// _commentVar = 5; } +/* + * CommentVar = "Mammamia"; + * ( + */ + +hint Implicit1; +[] call Implicit2; + +_ifVar = if(Implicit3) then {"One"} else {"Two"}; + +nil; \ No newline at end of file diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/pluginManagement/ESQDevPlugin.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/pluginManagement/ESQDevPlugin.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/pluginManagement/ESQDevPlugin.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/pluginManagement/ESQDevPlugin.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/pluginManagement/ResourceManager.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/pluginManagement/ResourceManager.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/pluginManagement/ResourceManager.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/pluginManagement/ResourceManager.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/pluginManagement/SQDevEclipseEventManager.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/pluginManagement/SQDevEclipseEventManager.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/pluginManagement/SQDevEclipseEventManager.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/pluginManagement/SQDevEclipseEventManager.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/pluginManagement/SQDevPluginManager.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/pluginManagement/SQDevPluginManager.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/pluginManagement/SQDevPluginManager.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/pluginManagement/SQDevPluginManager.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/pluginManagement/VersionManager.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/pluginManagement/VersionManager.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/pluginManagement/VersionManager.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/pluginManagement/VersionManager.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/pluginManager/SQDevPluginManager.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/pluginManager/SQDevPluginManager.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/pluginManager/SQDevPluginManager.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/pluginManager/SQDevPluginManager.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/styles/BoldStyle.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/styles/BoldStyle.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/styles/BoldStyle.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/styles/BoldStyle.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/styles/CodeStyle.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/styles/CodeStyle.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/styles/CodeStyle.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/styles/CodeStyle.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/styles/SQDevStyle.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/styles/SQDevStyle.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/styles/SQDevStyle.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/styles/SQDevStyle.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/syntax/Syntax.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/syntax/Syntax.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/syntax/Syntax.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/syntax/Syntax.java diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/syntax/SyntaxElement.java b/plugin/Raven.SQDev.Misc/src/raven/sqdev/syntax/SyntaxElement.java similarity index 100% rename from plugin/raven.sqdev.misc/src/raven/sqdev/syntax/SyntaxElement.java rename to plugin/Raven.SQDev.Misc/src/raven/sqdev/syntax/SyntaxElement.java diff --git a/plugin/raven.sqdev.editors/.classpath b/plugin/Raven.SQDev.SQFEditor/.classpath similarity index 100% rename from plugin/raven.sqdev.editors/.classpath rename to plugin/Raven.SQDev.SQFEditor/.classpath diff --git a/plugin/raven.sqdev.editors.sqfeditor/.project b/plugin/Raven.SQDev.SQFEditor/.project similarity index 100% rename from plugin/raven.sqdev.editors.sqfeditor/.project rename to plugin/Raven.SQDev.SQFEditor/.project diff --git a/plugin/raven.sqdev.misc/.settings/org.eclipse.jdt.core.prefs b/plugin/Raven.SQDev.SQFEditor/.settings/org.eclipse.jdt.core.prefs similarity index 100% rename from plugin/raven.sqdev.misc/.settings/org.eclipse.jdt.core.prefs rename to plugin/Raven.SQDev.SQFEditor/.settings/org.eclipse.jdt.core.prefs diff --git a/plugin/raven.sqdev.editors.sqfeditor/META-INF/MANIFEST.MF b/plugin/Raven.SQDev.SQFEditor/META-INF/MANIFEST.MF similarity index 72% rename from plugin/raven.sqdev.editors.sqfeditor/META-INF/MANIFEST.MF rename to plugin/Raven.SQDev.SQFEditor/META-INF/MANIFEST.MF index c523d26a..b6973020 100644 --- a/plugin/raven.sqdev.editors.sqfeditor/META-INF/MANIFEST.MF +++ b/plugin/Raven.SQDev.SQFEditor/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: SQFEditor Bundle-SymbolicName: raven.sqdev.editors.sqfeditor;singleton:=true -Bundle-Version: 0.7.2 +Bundle-Version: 0.7.4.stable Bundle-Activator: raven.sqdev.activator.Activator Bundle-Vendor: Raven Require-Bundle: org.eclipse.ui, @@ -10,12 +10,12 @@ Require-Bundle: org.eclipse.ui, org.eclipse.ui.editors, org.eclipse.jface.text;bundle-version="3.9.2", org.eclipse.osgi, - raven.sqdev.util;bundle-version="0.1.0", - raven.sqdev.editors;bundle-version="0.1.1", - raven.sqdev.preferences, + raven.sqdev.util;bundle-version="0.7.1", + raven.sqdev.editors;bundle-version="0.7.1", + raven.sqdev.preferences;bundle-version="0.5.5", org.eclipse.core.resources, org.eclipse.ui.ide, - raven.sqdev.misc;bundle-version="0.1.0", + raven.sqdev.misc;bundle-version="0.6.0", org.junit Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Bundle-ActivationPolicy: lazy diff --git a/plugin/raven.sqdev.editors.sqfeditor/bin/raven/sqdev/activator/Activator.class b/plugin/Raven.SQDev.SQFEditor/bin/raven/sqdev/activator/Activator.class similarity index 100% rename from plugin/raven.sqdev.editors.sqfeditor/bin/raven/sqdev/activator/Activator.class rename to plugin/Raven.SQDev.SQFEditor/bin/raven/sqdev/activator/Activator.class diff --git a/plugin/raven.sqdev.editors.sqfeditor/bin/raven/sqdev/editors/sqfeditor/SQFKeywordProvider.class b/plugin/Raven.SQDev.SQFEditor/bin/raven/sqdev/editors/sqfeditor/SQFKeywordProvider.class similarity index 100% rename from plugin/raven.sqdev.editors.sqfeditor/bin/raven/sqdev/editors/sqfeditor/SQFKeywordProvider.class rename to plugin/Raven.SQDev.SQFEditor/bin/raven/sqdev/editors/sqfeditor/SQFKeywordProvider.class diff --git a/plugin/raven.sqdev.editors.sqfeditor/bin/raven/sqdev/editors/sqfeditor/SQFStringPartitionRule$DecreasingCharArrayLengthComparator.class b/plugin/Raven.SQDev.SQFEditor/bin/raven/sqdev/editors/sqfeditor/SQFStringPartitionRule$DecreasingCharArrayLengthComparator.class similarity index 100% rename from plugin/raven.sqdev.editors.sqfeditor/bin/raven/sqdev/editors/sqfeditor/SQFStringPartitionRule$DecreasingCharArrayLengthComparator.class rename to plugin/Raven.SQDev.SQFEditor/bin/raven/sqdev/editors/sqfeditor/SQFStringPartitionRule$DecreasingCharArrayLengthComparator.class diff --git a/plugin/raven.sqdev.editors.sqfeditor/bin/raven/sqdev/editors/sqfeditor/SQFStringPartitionRule.class b/plugin/Raven.SQDev.SQFEditor/bin/raven/sqdev/editors/sqfeditor/SQFStringPartitionRule.class similarity index 100% rename from plugin/raven.sqdev.editors.sqfeditor/bin/raven/sqdev/editors/sqfeditor/SQFStringPartitionRule.class rename to plugin/Raven.SQDev.SQFEditor/bin/raven/sqdev/editors/sqfeditor/SQFStringPartitionRule.class diff --git a/plugin/raven.sqdev.editors.sqfeditor/bin/raven/sqdev/editors/sqfeditor/SQF_Editor$1.class b/plugin/Raven.SQDev.SQFEditor/bin/raven/sqdev/editors/sqfeditor/SQF_Editor$1.class similarity index 89% rename from plugin/raven.sqdev.editors.sqfeditor/bin/raven/sqdev/editors/sqfeditor/SQF_Editor$1.class rename to plugin/Raven.SQDev.SQFEditor/bin/raven/sqdev/editors/sqfeditor/SQF_Editor$1.class index a8ee5551..d3e483df 100644 Binary files a/plugin/raven.sqdev.editors.sqfeditor/bin/raven/sqdev/editors/sqfeditor/SQF_Editor$1.class and b/plugin/Raven.SQDev.SQFEditor/bin/raven/sqdev/editors/sqfeditor/SQF_Editor$1.class differ diff --git a/plugin/Raven.SQDev.SQFEditor/bin/raven/sqdev/editors/sqfeditor/SQF_Editor.class b/plugin/Raven.SQDev.SQFEditor/bin/raven/sqdev/editors/sqfeditor/SQF_Editor.class new file mode 100644 index 00000000..df6a4fbb Binary files /dev/null and b/plugin/Raven.SQDev.SQFEditor/bin/raven/sqdev/editors/sqfeditor/SQF_Editor.class differ diff --git a/plugin/raven.sqdev.editors.sqfeditor/bin/raven/sqdev/editors/sqfeditor/exceptions/IllegalBlankException.class b/plugin/Raven.SQDev.SQFEditor/bin/raven/sqdev/editors/sqfeditor/exceptions/IllegalBlankException.class similarity index 100% rename from plugin/raven.sqdev.editors.sqfeditor/bin/raven/sqdev/editors/sqfeditor/exceptions/IllegalBlankException.class rename to plugin/Raven.SQDev.SQFEditor/bin/raven/sqdev/editors/sqfeditor/exceptions/IllegalBlankException.class diff --git a/plugin/raven.sqdev.editors/build.properties b/plugin/Raven.SQDev.SQFEditor/build.properties similarity index 100% rename from plugin/raven.sqdev.editors/build.properties rename to plugin/Raven.SQDev.SQFEditor/build.properties diff --git a/plugin/raven.sqdev.editors.sqfeditor/plugin.xml b/plugin/Raven.SQDev.SQFEditor/plugin.xml similarity index 100% rename from plugin/raven.sqdev.editors.sqfeditor/plugin.xml rename to plugin/Raven.SQDev.SQFEditor/plugin.xml diff --git a/plugin/raven.sqdev.editors.sqfeditor/src/raven/sqdev/activator/Activator.java b/plugin/Raven.SQDev.SQFEditor/src/raven/sqdev/activator/Activator.java similarity index 100% rename from plugin/raven.sqdev.editors.sqfeditor/src/raven/sqdev/activator/Activator.java rename to plugin/Raven.SQDev.SQFEditor/src/raven/sqdev/activator/Activator.java diff --git a/plugin/raven.sqdev.editors.sqfeditor/src/raven/sqdev/editors/sqfeditor/SQFKeywordProvider.java b/plugin/Raven.SQDev.SQFEditor/src/raven/sqdev/editors/sqfeditor/SQFKeywordProvider.java similarity index 100% rename from plugin/raven.sqdev.editors.sqfeditor/src/raven/sqdev/editors/sqfeditor/SQFKeywordProvider.java rename to plugin/Raven.SQDev.SQFEditor/src/raven/sqdev/editors/sqfeditor/SQFKeywordProvider.java diff --git a/plugin/raven.sqdev.editors.sqfeditor/src/raven/sqdev/editors/sqfeditor/SQFStringPartitionRule.java b/plugin/Raven.SQDev.SQFEditor/src/raven/sqdev/editors/sqfeditor/SQFStringPartitionRule.java similarity index 100% rename from plugin/raven.sqdev.editors.sqfeditor/src/raven/sqdev/editors/sqfeditor/SQFStringPartitionRule.java rename to plugin/Raven.SQDev.SQFEditor/src/raven/sqdev/editors/sqfeditor/SQFStringPartitionRule.java diff --git a/plugin/raven.sqdev.editors.sqfeditor/src/raven/sqdev/editors/sqfeditor/SQF_Editor.java b/plugin/Raven.SQDev.SQFEditor/src/raven/sqdev/editors/sqfeditor/SQF_Editor.java similarity index 63% rename from plugin/raven.sqdev.editors.sqfeditor/src/raven/sqdev/editors/sqfeditor/SQF_Editor.java rename to plugin/Raven.SQDev.SQFEditor/src/raven/sqdev/editors/sqfeditor/SQF_Editor.java index cb6039e2..035037d1 100644 --- a/plugin/raven.sqdev.editors.sqfeditor/src/raven/sqdev/editors/sqfeditor/SQF_Editor.java +++ b/plugin/Raven.SQDev.SQFEditor/src/raven/sqdev/editors/sqfeditor/SQF_Editor.java @@ -2,14 +2,10 @@ import java.io.FileNotFoundException; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; -import org.antlr.v4.runtime.ANTLRInputStream; -import org.antlr.v4.runtime.CommonTokenStream; -import org.antlr.v4.runtime.atn.PredictionMode; +import org.antlr.v4.runtime.BufferedTokenStream; import org.antlr.v4.runtime.tree.ParseTree; -import org.antlr.v4.runtime.tree.ParseTreeWalker; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; @@ -35,17 +31,10 @@ import raven.sqdev.interfaces.IKeywordListChangeListener; import raven.sqdev.interfaces.IMacroSupport; import raven.sqdev.interfaces.ISQFParseInformation; -import raven.sqdev.misc.CharacterPair; import raven.sqdev.misc.Macro; -import raven.sqdev.misc.Pair; import raven.sqdev.misc.SQDevInfobox; -import raven.sqdev.misc.TextUtils; -import raven.sqdev.parser.misc.BasicErrorListener; -import raven.sqdev.parser.sqf.SQFLexer; +import raven.sqdev.parser.misc.ParseUtil; import raven.sqdev.parser.sqf.SQFParseResult; -import raven.sqdev.parser.sqf.SQFParseUtil; -import raven.sqdev.parser.sqf.SQFParser; -import raven.sqdev.parser.sqf.SQFValidator; import raven.sqdev.sqdevFile.ESQDevFileAnnotation; import raven.sqdev.sqdevFile.ESQDevFileAttribute; import raven.sqdev.sqdevFile.ESQDevFileType; @@ -60,14 +49,14 @@ * @author Raven * */ -public class SQF_Editor extends BasicCodeEditor implements - IKeywordListChangeListener, IMacroSupport, ISQFParseInformation { - +public class SQF_Editor extends BasicCodeEditor + implements IKeywordListChangeListener, IMacroSupport, ISQFParseInformation { + /** * The KeywordProvider for the SQF keywords */ private SQFKeywordProvider provider; - + /** * A list of all commands that can be used as a binary operator */ @@ -101,264 +90,169 @@ public class SQF_Editor extends BasicCodeEditor implements */ protected List macroNames; /** - * The CommonTokenStream that is associated with the current - * parse tree + * The CommonTokenStream that is associated with the current parse + * tree */ - private CommonTokenStream currentStream; - + private BufferedTokenStream currentStream; + public SQF_Editor() { super(); - + BasicSourceViewerConfiguration configuration = getBasicConfiguration(); - + // create respective keywordScanners configuration.createKeywordScanner( - SQDevPreferenceConstants.SQDEV_EDITOR_KEYWORDHIGHLIGHTING_COLOR_KEY, - false); - configuration.createKeywordScanner( - SQDevPreferenceConstants.SQDEV_EDITOR_LOCALVARIABLEHIGHLIGHTING_COLOR_KEY, - false); + SQDevPreferenceConstants.SQDEV_EDITOR_KEYWORDHIGHLIGHTING_COLOR_KEY, false); configuration.createKeywordScanner( - SQDevPreferenceConstants.SQDEV_EDITOR_GLOBALVARIABLEHIGHLIGHTING_COLOR_KEY, - false); + SQDevPreferenceConstants.SQDEV_EDITOR_LOCALVARIABLEHIGHLIGHTING_COLOR_KEY, false); configuration.createKeywordScanner( - SQDevPreferenceConstants.SQDEV_EDITOR_MAGICVARIABLEHIGHLIGHTING_COLOR_KEY, - false); + SQDevPreferenceConstants.SQDEV_EDITOR_GLOBALVARIABLEHIGHLIGHTING_COLOR_KEY, false); configuration.createKeywordScanner( - SQDevPreferenceConstants.SQDEV_EDITOR_MACROHIGHLIGHTING_COLOR_KEY, + SQDevPreferenceConstants.SQDEV_EDITOR_MAGICVARIABLEHIGHLIGHTING_COLOR_KEY, false); + configuration.createKeywordScanner(SQDevPreferenceConstants.SQDEV_EDITOR_MACROHIGHLIGHTING_COLOR_KEY, true); - + // get keywordScanner - KeywordScanner keywordScanner = configuration.getKeywordScanner( - SQDevPreferenceConstants.SQDEV_EDITOR_KEYWORDHIGHLIGHTING_COLOR_KEY); - + KeywordScanner keywordScanner = configuration + .getKeywordScanner(SQDevPreferenceConstants.SQDEV_EDITOR_KEYWORDHIGHLIGHTING_COLOR_KEY); + provider = new SQFKeywordProvider(); - + // set KeywordProvider keywordScanner.setKeywordProvider(provider); - + // configure this editor as a keyword list listener provider.addKeywordListChangeListener(this); keywordScanner.addKeywordListChangeListener(this); - + // get PartitionScanner - BasicPartitionScanner partitionScanner = getBasicProvider() - .getPartitionScanner(); - + BasicPartitionScanner partitionScanner = getBasicProvider().getPartitionScanner(); + // exchange the string rule of the partitionScanner - partitionScanner - .removeRule(BasicPartitionScanner.DOUBLE_QUOTE_STRING_RULE); - partitionScanner.addRule(new SQFStringPartitionRule( - new Token(BasicPartitionScanner.BASIC_STRING))); - + partitionScanner.removeRule(BasicPartitionScanner.DOUBLE_QUOTE_STRING_RULE); + partitionScanner.addRule(new SQFStringPartitionRule(new Token(BasicPartitionScanner.BASIC_STRING))); + binaryCommands = new ArrayList(); unaryCommands = new ArrayList(); nularCommands = new ArrayList(); localVariables = new ArrayList(); globalVariables = new ArrayList(); magicVariables = new ArrayList(); - + // populate the magic vars with the stadard ones - setMagicVariables(SQFParseUtil.getDefaultMagicVars(), false); - + setMagicVariables(ParseUtil.getDefaultMagicVars(), false); + macros = new ArrayList(); macroNames = new ArrayList(); - + categorizeCommands(); } - + @Override public void doSave(IProgressMonitor progressMonitor) { super.doSave(progressMonitor); - + // manage auto export IEditorInput input = this.getEditorInput(); - + // if this file is part of a project if (input instanceof IFileEditorInput) { // get the containing project - IProject containingProject = ((IFileEditorInput) input).getFile() - .getProject(); - - if (containingProject != null - && ProjectUtil.isSQDevProject(containingProject)) { + IProject containingProject = ((IFileEditorInput) input).getFile().getProject(); + + if (containingProject != null && ProjectUtil.isSQDevProject(containingProject)) { try { // get the linking file SQDevFile linkFile = new SQDevFile( - containingProject.getFile(ESQDevFileType.LINK - + EFileType.SQDEV.getExtension())); - + containingProject.getFile(ESQDevFileType.LINK + EFileType.SQDEV.getExtension())); + // check if autoExport is enabled for this project - boolean autoExport = linkFile - .parseAttribute(ESQDevFileAttribute.AUTOEXPORT) - .getValue().equals("true"); - + boolean autoExport = linkFile.parseAttribute(ESQDevFileAttribute.AUTOEXPORT).getValue() + .equals("true"); + if (autoExport) { // outsource the export process to another thread Job exportJob = new Job("Export") { - + @Override protected IStatus run(IProgressMonitor monitor) { - monitor.beginTask("Export project \"" - + containingProject.getName() + "\"", + monitor.beginTask("Export project \"" + containingProject.getName() + "\"", 1); try { ProjectUtil.export(containingProject, - Util.getExportPathFor( - containingProject), - linkFile.parseAnnotation( - ESQDevFileAnnotation.IGNORE) - .getValues(), - linkFile.parseAnnotation( - ESQDevFileAnnotation.PRESERVE) + Util.getExportPathFor(containingProject), + linkFile.parseAnnotation(ESQDevFileAnnotation.IGNORE).getValues(), + linkFile.parseAnnotation(ESQDevFileAnnotation.PRESERVE) .getValues()); - + monitor.worked(1); } catch (SQDevFileIsInvalidException e) { e.printStackTrace(); } - + monitor.done(); - + return Status.OK_STATUS; } }; - + exportJob.schedule(); } - - } catch (FileNotFoundException - | IllegalAccessStateException e) { + + } catch (FileNotFoundException | IllegalAccessStateException e) { e.printStackTrace(); - - SQDevInfobox info = new SQDevInfobox( - "Couldn't perform linking process!", e); + + SQDevInfobox info = new SQDevInfobox("Couldn't perform linking process!", e); info.open(); } catch (SQDevFileIsInvalidException e) { e.printStackTrace(); - + // inform the user - - SQDevInfobox info = new SQDevInfobox( - "The linking file is invalid!", e); + + SQDevInfobox info = new SQDevInfobox("The linking file is invalid!", e); info.open(); } } } } - + @Override protected ParseTree doParse(String input) { - BasicErrorListener listener = new BasicErrorListener(this); - - ANTLRInputStream in = new ANTLRInputStream(input); - - SQFLexer lexer = new SQFLexer(in, getBinaryKeywords(), - getUnaryKeywords(), macroNames); - lexer.removeErrorListeners(); - lexer.addErrorListener(listener); - - currentStream = new CommonTokenStream(lexer); - - SQFParser parser = new SQFParser(currentStream); - parser.removeErrorListeners(); - parser.addErrorListener(listener); - - if (parseRuleNames == null) { - parseRuleNames = Arrays.asList(parser.getRuleNames()); + SQFParseResult result = ParseUtil.parseSQF(input, this); + + if (!result.providesParseTree() || !result.providesParserRuleNames() + || !result.providesTokenStream()) { + throw new SQDevCoreException("Expected SQFParseResult to contain tree, names and tokenStream!"); } - - ParseTree tree = null; - // parse with SLL(*) - listener.suppressErrors(true); - parser.getInterpreter().setPredictionMode(PredictionMode.SLL); - - tree = parser.start(); - - - // check for unbalanced brackets - List> unbalancedCharacters = TextUtils - .findUnbalancedCharacterPairs(input, - new CharacterPair[] { CharacterPair.ROUND_BRACKETS, - CharacterPair.SQUARE_BRACKETS, - CharacterPair.CURLY_BRACKETS, - CharacterPair.DOUBLE_QUOTATION_MARKS, - CharacterPair.SINGLE_QUOTATION_MARKS }); - - if (!unbalancedCharacters.isEmpty() && listener.hasSuppressedErros()) { - // There are unbalanced characters -> make sure they are not - // a comment or a String - currentStream.reset(); - - List> unbalancedPairsToReport = new ArrayList>(); - - for (org.antlr.v4.runtime.Token currentToken : currentStream - .getTokens()) { - if (currentToken - .getChannel() == org.antlr.v4.runtime.Token.HIDDEN_CHANNEL - || currentToken.getType() == SQFParser.STRING) { - // Ignore hidden Tokens - continue; - } else { - for (Pair currentPair : unbalancedCharacters) { - if (currentPair.getFirst() >= currentToken - .getStartIndex()) { - if (currentPair.getFirst() > currentToken - .getStopIndex()) { - // can only be considered when looking - // at the next Token - break; - } else { - // The offedning token is in a relevant - // part -> must be reported - unbalancedPairsToReport.add(currentPair); - } - } - } - } - } - - if (unbalancedPairsToReport.size() > 0) { - listener.clearSuppressedErrors(); - listener.suppressErrors(false); - } - - for (Pair currentPair : unbalancedPairsToReport) { - listener.reportError(currentPair.getFirst(), 1, - currentPair.getSecond()); - } + + if (parseRuleNames == null) { + parseRuleNames = result.getParserRulenames(); } - - listener.flushSuppressedErros(); - - return tree; + + currentStream = result.getTokenStream(); + + result.applyMarkersTo(this); + + return result.getParseTree(); } - + @Override public boolean processParseTree(ParseTree parseTree) { - ParseTreeWalker walker = new ParseTreeWalker(); - - SQFValidator validator = new SQFValidator(this, currentStream); - - walker.walk(validator, parseTree); - // process parse result - SQFParseResult result = (SQFParseResult) validator.getParseResult(); - - setVariables(result.getDeclaredLocalVariables(), - result.getDeclaredGlobalVariables()); + SQFParseResult result = ParseUtil.validateSQF(parseTree, currentStream, this); + + setVariables(result.getDeclaredLocalVariables(), result.getDeclaredGlobalVariables()); result.applyMarkersTo(this); - + for (Position currentFoldingPos : result.getFoldingAreas()) { addFoldingArea(currentFoldingPos); } - - + applyParseChanges(); - + return true; } - + /** * Categorizes the commands according to their ability to be used as a * binary/unary/nular operator @@ -367,98 +261,97 @@ private void categorizeCommands() { for (Keyword currentKeyword : provider.getKeywordList().getKeywords()) { if (currentKeyword instanceof SQFCommand) { SQFCommand currentCommand = (SQFCommand) currentKeyword; - + if (currentCommand.isBinaryOperator()) { binaryCommands.add(currentCommand); } - + if (currentCommand.isUnaryOperator()) { unaryCommands.add(currentCommand); } - + if (currentCommand.isNularOperator()) { nularCommands.add(currentCommand); } } } } - + /** * Gets all SQF commands that can be used as a binary operator */ public List getBinaryOperators() { return new ArrayList(binaryCommands); } - + /** * Gets all SQF commands that can be used as a unary operator */ public List getUnaryOperators() { return new ArrayList(unaryCommands); } - + /** * Gets all SQF commands that can be used as a nular operator */ public List getNularOperators() { return new ArrayList(nularCommands); } - + /** * Gets a list of all keywords that can be used as a binary operator */ public List getBinaryKeywords() { ArrayList list = new ArrayList(); - + for (SQFCommand currentCommand : getBinaryOperators()) { list.add(currentCommand.getKeyword()); } - + return list; } - + /** * Gets a list of all keywords that can be used as a unnary operator */ public List getUnaryKeywords() { ArrayList list = new ArrayList(); - + for (SQFCommand currentCommand : getUnaryOperators()) { list.add(currentCommand.getKeyword()); } - + return list; } - + /** * Gets a list of all keywords that can be used as a nular operator */ public List getNularKeywords() { ArrayList list = new ArrayList(); - + for (SQFCommand currentCommand : getNularOperators()) { list.add(currentCommand.getKeyword()); } - + return list; } - + @Override public void keywordListChanged(String ctx) { switch (ctx) { - case IKeywordListChangeListener.CTX_LIST_CHANGED: - categorizeCommands(); - break; - - case IKeywordListChangeListener.CTX_LIST_REMOVED: - throw new SQDevCoreException( - "Unimplemented behaviour necessary"); + case IKeywordListChangeListener.CTX_LIST_CHANGED: + categorizeCommands(); + break; + + case IKeywordListChangeListener.CTX_LIST_REMOVED: + throw new SQDevCoreException("Unimplemented behaviour necessary"); } } - + /** - * Sets the local variables for this editor. If there is a change compared - * to the current set of local variables the editor will update itself + * Sets the local variables for this editor. If there is a change compared to + * the current set of local variables the editor will update itself * * @param variables * The local variables to add @@ -470,45 +363,44 @@ public void keywordListChanged(String ctx) { public boolean setLocalVariables(List variables, boolean update) { if (!localVariables.equals(variables)) { localVariables = new ArrayList(variables); - + // update respective scanner/provider getBasicConfiguration() .getKeywordScanner( SQDevPreferenceConstants.SQDEV_EDITOR_LOCALVARIABLEHIGHLIGHTING_COLOR_KEY) - .getKeywordProvider() - .setKeywordList(new KeywordList(variables)); - + .getKeywordProvider().setKeywordList(new KeywordList(variables)); + if (update) { update(false); } - + return true; } - + return false; } - + /** * Gets the list of local variables that are defined in this editor */ public List getLocalVariables() { return localVariables; } - + /** - * Gets all defined local and all available magic variables for this editor - * in one list + * Gets all defined local and all available magic variables for this editor in + * one list */ public List getLocalAndMagicVariables() { List variables = (localVariables); variables.addAll(magicVariables); - + return variables; } - + /** - * Sets the magic variables for this editor. If there is a change compared - * to the current set of local variables the editor will update itself + * Sets the magic variables for this editor. If there is a change compared to + * the current set of local variables the editor will update itself * * @param variables * The magic variables to add @@ -520,34 +412,33 @@ public List getLocalAndMagicVariables() { public boolean setMagicVariables(List variables, boolean update) { if (!magicVariables.equals(variables)) { magicVariables = new ArrayList(variables); - + // update respective scanner/provider getBasicConfiguration() .getKeywordScanner( SQDevPreferenceConstants.SQDEV_EDITOR_MAGICVARIABLEHIGHLIGHTING_COLOR_KEY) - .getKeywordProvider() - .setKeywordList(new KeywordList(variables)); - + .getKeywordProvider().setKeywordList(new KeywordList(variables)); + if (update) { update(false); } - + return true; } - + return false; } - + /** * Gets the list of available magic variables for this editor */ public List getMagicVariables() { return magicVariables; } - + /** - * Sets the global variables for this editor. If there is a change compared - * to the current set of global variables the editor will update itself + * Sets the global variables for this editor. If there is a change compared to + * the current set of global variables the editor will update itself * * @param variables * The gloabl variables to add @@ -556,90 +447,96 @@ public List getMagicVariables() { * * @return True when variables were updated */ - public boolean setGlobalVariables(List variables, - boolean update) { + public boolean setGlobalVariables(List variables, boolean update) { if (!globalVariables.equals(variables)) { globalVariables = new ArrayList(variables); - + // update respective scanner/provider getBasicConfiguration() .getKeywordScanner( SQDevPreferenceConstants.SQDEV_EDITOR_GLOBALVARIABLEHIGHLIGHTING_COLOR_KEY) - .getKeywordProvider() - .setKeywordList(new KeywordList(variables)); - + .getKeywordProvider().setKeywordList(new KeywordList(variables)); + if (update) { update(false); } - + return true; } - + return false; } - + /** * Gets the list of global variables that are defined in this editor */ public List getGlobalVariables() { return globalVariables; } - + /** - * Sets the variables for this editor. If there are any changes in - * comparison to the current set of variables the editor will updates itself + * Sets the variables for this editor. If there are any changes in comparison to + * the current set of variables the editor will updates itself * * @param localVariables * The new set of local variables * @param globalVariables * The new set of global variables */ - public void setVariables(List localVariables, - List globalVariables) { + public void setVariables(List localVariables, List globalVariables) { boolean localUpdate = setLocalVariables(localVariables, false); boolean globalUpdate = setGlobalVariables(globalVariables, false); - + if (localUpdate || globalUpdate) { update(false); } } - + @Override public boolean setMacros(List macros, boolean update) { macroNames.clear(); for (Macro currentMacro : macros) { macroNames.add(currentMacro.getKeyword()); } - + if (!this.macros.equals(macros)) { this.macros = new ArrayList(macros); - + // update respective scanner/provider getBasicConfiguration() - .getKeywordScanner( - SQDevPreferenceConstants.SQDEV_EDITOR_MACROHIGHLIGHTING_COLOR_KEY) - .getKeywordProvider() - .setKeywordList(new KeywordList(macros)); - + .getKeywordScanner(SQDevPreferenceConstants.SQDEV_EDITOR_MACROHIGHLIGHTING_COLOR_KEY) + .getKeywordProvider().setKeywordList(new KeywordList(macros)); + if (update) { update(false); } - + return true; } - + return false; } - + @Override public List getMacros() { return macros; } - + /** * Gets the names of all macros that are configured for this editor */ public List getMacroNames() { return macroNames; } + + @Override + public List getMagicVariableNames() { + List names = new ArrayList(); + + for (Variable current : magicVariables) { + names.add(current.getKeyword()); + } + + return names; + } } diff --git a/plugin/raven.sqdev.editors.sqfeditor/src/raven/sqdev/editors/sqfeditor/exceptions/IllegalBlankException.java b/plugin/Raven.SQDev.SQFEditor/src/raven/sqdev/editors/sqfeditor/exceptions/IllegalBlankException.java similarity index 100% rename from plugin/raven.sqdev.editors.sqfeditor/src/raven/sqdev/editors/sqfeditor/exceptions/IllegalBlankException.java rename to plugin/Raven.SQDev.SQFEditor/src/raven/sqdev/editors/sqfeditor/exceptions/IllegalBlankException.java diff --git a/plugin/raven.sqdev.ui/.classpath b/plugin/Raven.SQDev.UI/.classpath similarity index 100% rename from plugin/raven.sqdev.ui/.classpath rename to plugin/Raven.SQDev.UI/.classpath diff --git a/plugin/raven.sqdev.ui/.project b/plugin/Raven.SQDev.UI/.project similarity index 100% rename from plugin/raven.sqdev.ui/.project rename to plugin/Raven.SQDev.UI/.project diff --git a/plugin/raven.sqdev.preferences/.settings/org.eclipse.jdt.core.prefs b/plugin/Raven.SQDev.UI/.settings/org.eclipse.jdt.core.prefs similarity index 100% rename from plugin/raven.sqdev.preferences/.settings/org.eclipse.jdt.core.prefs rename to plugin/Raven.SQDev.UI/.settings/org.eclipse.jdt.core.prefs diff --git a/plugin/raven.sqdev.ui/Abego/org.abego.treelayout.core-1.0.3.jar b/plugin/Raven.SQDev.UI/Abego/org.abego.treelayout.core-1.0.3.jar similarity index 100% rename from plugin/raven.sqdev.ui/Abego/org.abego.treelayout.core-1.0.3.jar rename to plugin/Raven.SQDev.UI/Abego/org.abego.treelayout.core-1.0.3.jar diff --git a/plugin/raven.sqdev.ui/META-INF/MANIFEST.MF b/plugin/Raven.SQDev.UI/META-INF/MANIFEST.MF similarity index 85% rename from plugin/raven.sqdev.ui/META-INF/MANIFEST.MF rename to plugin/Raven.SQDev.UI/META-INF/MANIFEST.MF index 870cc285..7be7dd83 100644 --- a/plugin/raven.sqdev.ui/META-INF/MANIFEST.MF +++ b/plugin/Raven.SQDev.UI/META-INF/MANIFEST.MF @@ -2,19 +2,19 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: UI Bundle-SymbolicName: raven.sqdev.ui;singleton:=true -Bundle-Version: 0.3.0 +Bundle-Version: 0.3.1.stable Bundle-Activator: raven.sqdev.ui.Activator Bundle-Vendor: Raven Require-Bundle: org.eclipse.ui, org.eclipse.core.runtime, - raven.sqdev.editors, - raven.sqdev.util, + raven.sqdev.editors;bundle-version="0.7.1", + raven.sqdev.util;bundle-version="0.7.1", org.eclipse.ui.navigator, org.eclipse.ui.ide, org.eclipse.ui.editors;bundle-version="3.8.200", org.eclipse.core.resources, org.eclipse.ui.navigator.resources, - raven.sqdev.misc + raven.sqdev.misc;bundle-version="0.6.0" Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Bundle-ActivationPolicy: lazy Bundle-ClassPath: ., diff --git a/plugin/raven.sqdev.ui/bin/raven/sqdev/bundles/rptViewerFindDialog.properties b/plugin/Raven.SQDev.UI/bin/raven/sqdev/bundles/rptViewerFindDialog.properties similarity index 100% rename from plugin/raven.sqdev.ui/bin/raven/sqdev/bundles/rptViewerFindDialog.properties rename to plugin/Raven.SQDev.UI/bin/raven/sqdev/bundles/rptViewerFindDialog.properties diff --git a/plugin/raven.sqdev.ui/bin/raven/sqdev/ui/Activator.class b/plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/Activator.class similarity index 100% rename from plugin/raven.sqdev.ui/bin/raven/sqdev/ui/Activator.class rename to plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/Activator.class diff --git a/plugin/raven.sqdev.ui/bin/raven/sqdev/ui/commands/CreatePluginInfo$1.class b/plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/commands/CreatePluginInfo$1.class similarity index 100% rename from plugin/raven.sqdev.ui/bin/raven/sqdev/ui/commands/CreatePluginInfo$1.class rename to plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/commands/CreatePluginInfo$1.class diff --git a/plugin/raven.sqdev.ui/bin/raven/sqdev/ui/commands/CreatePluginInfo.class b/plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/commands/CreatePluginInfo.class similarity index 100% rename from plugin/raven.sqdev.ui/bin/raven/sqdev/ui/commands/CreatePluginInfo.class rename to plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/commands/CreatePluginInfo.class diff --git a/plugin/raven.sqdev.ui/bin/raven/sqdev/ui/commands/ShowParseTreeHandler.class b/plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/commands/ShowParseTreeHandler.class similarity index 100% rename from plugin/raven.sqdev.ui/bin/raven/sqdev/ui/commands/ShowParseTreeHandler.class rename to plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/commands/ShowParseTreeHandler.class diff --git a/plugin/raven.sqdev.ui/bin/raven/sqdev/ui/perspectives/SQDevPerspective.class b/plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/perspectives/SQDevPerspective.class similarity index 100% rename from plugin/raven.sqdev.ui/bin/raven/sqdev/ui/perspectives/SQDevPerspective.class rename to plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/perspectives/SQDevPerspective.class diff --git a/plugin/raven.sqdev.ui/bin/raven/sqdev/ui/util/GraphicsSupport$1.class b/plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/util/GraphicsSupport$1.class similarity index 100% rename from plugin/raven.sqdev.ui/bin/raven/sqdev/ui/util/GraphicsSupport$1.class rename to plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/util/GraphicsSupport$1.class diff --git a/plugin/raven.sqdev.ui/bin/raven/sqdev/ui/util/GraphicsSupport.class b/plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/util/GraphicsSupport.class similarity index 100% rename from plugin/raven.sqdev.ui/bin/raven/sqdev/ui/util/GraphicsSupport.class rename to plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/util/GraphicsSupport.class diff --git a/plugin/raven.sqdev.ui/bin/raven/sqdev/ui/util/ITreeTextProvider.class b/plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/util/ITreeTextProvider.class similarity index 100% rename from plugin/raven.sqdev.ui/bin/raven/sqdev/ui/util/ITreeTextProvider.class rename to plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/util/ITreeTextProvider.class diff --git a/plugin/raven.sqdev.ui/bin/raven/sqdev/ui/util/IndexPair.class b/plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/util/IndexPair.class similarity index 100% rename from plugin/raven.sqdev.ui/bin/raven/sqdev/ui/util/IndexPair.class rename to plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/util/IndexPair.class diff --git a/plugin/raven.sqdev.ui/bin/raven/sqdev/ui/util/JFileChooserConfirmOverwrite.class b/plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/util/JFileChooserConfirmOverwrite.class similarity index 100% rename from plugin/raven.sqdev.ui/bin/raven/sqdev/ui/util/JFileChooserConfirmOverwrite.class rename to plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/util/JFileChooserConfirmOverwrite.class diff --git a/plugin/raven.sqdev.ui/bin/raven/sqdev/ui/util/TreeLayoutAdaptor$AntlrTreeChildrenIterable$1.class b/plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/util/TreeLayoutAdaptor$AntlrTreeChildrenIterable$1.class similarity index 100% rename from plugin/raven.sqdev.ui/bin/raven/sqdev/ui/util/TreeLayoutAdaptor$AntlrTreeChildrenIterable$1.class rename to plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/util/TreeLayoutAdaptor$AntlrTreeChildrenIterable$1.class diff --git a/plugin/raven.sqdev.ui/bin/raven/sqdev/ui/util/TreeLayoutAdaptor$AntlrTreeChildrenIterable.class b/plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/util/TreeLayoutAdaptor$AntlrTreeChildrenIterable.class similarity index 100% rename from plugin/raven.sqdev.ui/bin/raven/sqdev/ui/util/TreeLayoutAdaptor$AntlrTreeChildrenIterable.class rename to plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/util/TreeLayoutAdaptor$AntlrTreeChildrenIterable.class diff --git a/plugin/raven.sqdev.ui/bin/raven/sqdev/ui/util/TreeLayoutAdaptor$AntlrTreeChildrenReverseIterable$1.class b/plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/util/TreeLayoutAdaptor$AntlrTreeChildrenReverseIterable$1.class similarity index 100% rename from plugin/raven.sqdev.ui/bin/raven/sqdev/ui/util/TreeLayoutAdaptor$AntlrTreeChildrenReverseIterable$1.class rename to plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/util/TreeLayoutAdaptor$AntlrTreeChildrenReverseIterable$1.class diff --git a/plugin/raven.sqdev.ui/bin/raven/sqdev/ui/util/TreeLayoutAdaptor$AntlrTreeChildrenReverseIterable.class b/plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/util/TreeLayoutAdaptor$AntlrTreeChildrenReverseIterable.class similarity index 100% rename from plugin/raven.sqdev.ui/bin/raven/sqdev/ui/util/TreeLayoutAdaptor$AntlrTreeChildrenReverseIterable.class rename to plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/util/TreeLayoutAdaptor$AntlrTreeChildrenReverseIterable.class diff --git a/plugin/raven.sqdev.ui/bin/raven/sqdev/ui/util/TreeLayoutAdaptor.class b/plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/util/TreeLayoutAdaptor.class similarity index 100% rename from plugin/raven.sqdev.ui/bin/raven/sqdev/ui/util/TreeLayoutAdaptor.class rename to plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/util/TreeLayoutAdaptor.class diff --git a/plugin/raven.sqdev.ui/bin/raven/sqdev/ui/util/TreeViewer$1.class b/plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/util/TreeViewer$1.class similarity index 100% rename from plugin/raven.sqdev.ui/bin/raven/sqdev/ui/util/TreeViewer$1.class rename to plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/util/TreeViewer$1.class diff --git a/plugin/raven.sqdev.ui/bin/raven/sqdev/ui/util/TreeViewer$2.class b/plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/util/TreeViewer$2.class similarity index 100% rename from plugin/raven.sqdev.ui/bin/raven/sqdev/ui/util/TreeViewer$2.class rename to plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/util/TreeViewer$2.class diff --git a/plugin/raven.sqdev.ui/bin/raven/sqdev/ui/util/TreeViewer$3.class b/plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/util/TreeViewer$3.class similarity index 100% rename from plugin/raven.sqdev.ui/bin/raven/sqdev/ui/util/TreeViewer$3.class rename to plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/util/TreeViewer$3.class diff --git a/plugin/raven.sqdev.ui/bin/raven/sqdev/ui/util/TreeViewer$4.class b/plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/util/TreeViewer$4.class similarity index 100% rename from plugin/raven.sqdev.ui/bin/raven/sqdev/ui/util/TreeViewer$4.class rename to plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/util/TreeViewer$4.class diff --git a/plugin/raven.sqdev.ui/bin/raven/sqdev/ui/util/TreeViewer$5.class b/plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/util/TreeViewer$5.class similarity index 100% rename from plugin/raven.sqdev.ui/bin/raven/sqdev/ui/util/TreeViewer$5.class rename to plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/util/TreeViewer$5.class diff --git a/plugin/raven.sqdev.ui/bin/raven/sqdev/ui/util/TreeViewer$6.class b/plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/util/TreeViewer$6.class similarity index 100% rename from plugin/raven.sqdev.ui/bin/raven/sqdev/ui/util/TreeViewer$6.class rename to plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/util/TreeViewer$6.class diff --git a/plugin/raven.sqdev.ui/bin/raven/sqdev/ui/util/TreeViewer$DefaultTreeTextProvider.class b/plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/util/TreeViewer$DefaultTreeTextProvider.class similarity index 100% rename from plugin/raven.sqdev.ui/bin/raven/sqdev/ui/util/TreeViewer$DefaultTreeTextProvider.class rename to plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/util/TreeViewer$DefaultTreeTextProvider.class diff --git a/plugin/raven.sqdev.ui/bin/raven/sqdev/ui/util/TreeViewer$EmptyIcon.class b/plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/util/TreeViewer$EmptyIcon.class similarity index 100% rename from plugin/raven.sqdev.ui/bin/raven/sqdev/ui/util/TreeViewer$EmptyIcon.class rename to plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/util/TreeViewer$EmptyIcon.class diff --git a/plugin/raven.sqdev.ui/bin/raven/sqdev/ui/util/TreeViewer$TreeNodeWrapper.class b/plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/util/TreeViewer$TreeNodeWrapper.class similarity index 100% rename from plugin/raven.sqdev.ui/bin/raven/sqdev/ui/util/TreeViewer$TreeNodeWrapper.class rename to plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/util/TreeViewer$TreeNodeWrapper.class diff --git a/plugin/raven.sqdev.ui/bin/raven/sqdev/ui/util/TreeViewer$VariableExtentProvide.class b/plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/util/TreeViewer$VariableExtentProvide.class similarity index 100% rename from plugin/raven.sqdev.ui/bin/raven/sqdev/ui/util/TreeViewer$VariableExtentProvide.class rename to plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/util/TreeViewer$VariableExtentProvide.class diff --git a/plugin/raven.sqdev.ui/bin/raven/sqdev/ui/util/TreeViewer.class b/plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/util/TreeViewer.class similarity index 100% rename from plugin/raven.sqdev.ui/bin/raven/sqdev/ui/util/TreeViewer.class rename to plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/util/TreeViewer.class diff --git a/plugin/raven.sqdev.ui/bin/raven/sqdev/ui/views/RPTViewer$1$1.class b/plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/views/RPTViewer$1$1.class similarity index 100% rename from plugin/raven.sqdev.ui/bin/raven/sqdev/ui/views/RPTViewer$1$1.class rename to plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/views/RPTViewer$1$1.class diff --git a/plugin/raven.sqdev.ui/bin/raven/sqdev/ui/views/RPTViewer$1.class b/plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/views/RPTViewer$1.class similarity index 100% rename from plugin/raven.sqdev.ui/bin/raven/sqdev/ui/views/RPTViewer$1.class rename to plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/views/RPTViewer$1.class diff --git a/plugin/raven.sqdev.ui/bin/raven/sqdev/ui/views/RPTViewer$2.class b/plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/views/RPTViewer$2.class similarity index 100% rename from plugin/raven.sqdev.ui/bin/raven/sqdev/ui/views/RPTViewer$2.class rename to plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/views/RPTViewer$2.class diff --git a/plugin/raven.sqdev.ui/bin/raven/sqdev/ui/views/RPTViewer$3.class b/plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/views/RPTViewer$3.class similarity index 100% rename from plugin/raven.sqdev.ui/bin/raven/sqdev/ui/views/RPTViewer$3.class rename to plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/views/RPTViewer$3.class diff --git a/plugin/raven.sqdev.ui/bin/raven/sqdev/ui/views/RPTViewer$4.class b/plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/views/RPTViewer$4.class similarity index 100% rename from plugin/raven.sqdev.ui/bin/raven/sqdev/ui/views/RPTViewer$4.class rename to plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/views/RPTViewer$4.class diff --git a/plugin/raven.sqdev.ui/bin/raven/sqdev/ui/views/RPTViewer$5$1.class b/plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/views/RPTViewer$5$1.class similarity index 100% rename from plugin/raven.sqdev.ui/bin/raven/sqdev/ui/views/RPTViewer$5$1.class rename to plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/views/RPTViewer$5$1.class diff --git a/plugin/raven.sqdev.ui/bin/raven/sqdev/ui/views/RPTViewer$5$2.class b/plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/views/RPTViewer$5$2.class similarity index 100% rename from plugin/raven.sqdev.ui/bin/raven/sqdev/ui/views/RPTViewer$5$2.class rename to plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/views/RPTViewer$5$2.class diff --git a/plugin/raven.sqdev.ui/bin/raven/sqdev/ui/views/RPTViewer$5$3.class b/plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/views/RPTViewer$5$3.class similarity index 100% rename from plugin/raven.sqdev.ui/bin/raven/sqdev/ui/views/RPTViewer$5$3.class rename to plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/views/RPTViewer$5$3.class diff --git a/plugin/raven.sqdev.ui/bin/raven/sqdev/ui/views/RPTViewer$5.class b/plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/views/RPTViewer$5.class similarity index 100% rename from plugin/raven.sqdev.ui/bin/raven/sqdev/ui/views/RPTViewer$5.class rename to plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/views/RPTViewer$5.class diff --git a/plugin/raven.sqdev.ui/bin/raven/sqdev/ui/views/RPTViewer.class b/plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/views/RPTViewer.class similarity index 100% rename from plugin/raven.sqdev.ui/bin/raven/sqdev/ui/views/RPTViewer.class rename to plugin/Raven.SQDev.UI/bin/raven/sqdev/ui/views/RPTViewer.class diff --git a/plugin/raven.sqdev.ui/build.properties b/plugin/Raven.SQDev.UI/build.properties similarity index 100% rename from plugin/raven.sqdev.ui/build.properties rename to plugin/Raven.SQDev.UI/build.properties diff --git a/plugin/raven.sqdev.ui/plugin.xml b/plugin/Raven.SQDev.UI/plugin.xml similarity index 100% rename from plugin/raven.sqdev.ui/plugin.xml rename to plugin/Raven.SQDev.UI/plugin.xml diff --git a/plugin/raven.sqdev.ui/src/raven/sqdev/bundles/rptViewerFindDialog.properties b/plugin/Raven.SQDev.UI/src/raven/sqdev/bundles/rptViewerFindDialog.properties similarity index 100% rename from plugin/raven.sqdev.ui/src/raven/sqdev/bundles/rptViewerFindDialog.properties rename to plugin/Raven.SQDev.UI/src/raven/sqdev/bundles/rptViewerFindDialog.properties diff --git a/plugin/raven.sqdev.ui/src/raven/sqdev/ui/Activator.java b/plugin/Raven.SQDev.UI/src/raven/sqdev/ui/Activator.java similarity index 100% rename from plugin/raven.sqdev.ui/src/raven/sqdev/ui/Activator.java rename to plugin/Raven.SQDev.UI/src/raven/sqdev/ui/Activator.java diff --git a/plugin/raven.sqdev.ui/src/raven/sqdev/ui/commands/CreatePluginInfo.java b/plugin/Raven.SQDev.UI/src/raven/sqdev/ui/commands/CreatePluginInfo.java similarity index 100% rename from plugin/raven.sqdev.ui/src/raven/sqdev/ui/commands/CreatePluginInfo.java rename to plugin/Raven.SQDev.UI/src/raven/sqdev/ui/commands/CreatePluginInfo.java diff --git a/plugin/raven.sqdev.ui/src/raven/sqdev/ui/commands/ShowParseTreeHandler.java b/plugin/Raven.SQDev.UI/src/raven/sqdev/ui/commands/ShowParseTreeHandler.java similarity index 100% rename from plugin/raven.sqdev.ui/src/raven/sqdev/ui/commands/ShowParseTreeHandler.java rename to plugin/Raven.SQDev.UI/src/raven/sqdev/ui/commands/ShowParseTreeHandler.java diff --git a/plugin/raven.sqdev.ui/src/raven/sqdev/ui/perspectives/SQDevPerspective.java b/plugin/Raven.SQDev.UI/src/raven/sqdev/ui/perspectives/SQDevPerspective.java similarity index 100% rename from plugin/raven.sqdev.ui/src/raven/sqdev/ui/perspectives/SQDevPerspective.java rename to plugin/Raven.SQDev.UI/src/raven/sqdev/ui/perspectives/SQDevPerspective.java diff --git a/plugin/raven.sqdev.ui/src/raven/sqdev/ui/util/GraphicsSupport.java b/plugin/Raven.SQDev.UI/src/raven/sqdev/ui/util/GraphicsSupport.java similarity index 100% rename from plugin/raven.sqdev.ui/src/raven/sqdev/ui/util/GraphicsSupport.java rename to plugin/Raven.SQDev.UI/src/raven/sqdev/ui/util/GraphicsSupport.java diff --git a/plugin/raven.sqdev.ui/src/raven/sqdev/ui/util/ITreeTextProvider.java b/plugin/Raven.SQDev.UI/src/raven/sqdev/ui/util/ITreeTextProvider.java similarity index 100% rename from plugin/raven.sqdev.ui/src/raven/sqdev/ui/util/ITreeTextProvider.java rename to plugin/Raven.SQDev.UI/src/raven/sqdev/ui/util/ITreeTextProvider.java diff --git a/plugin/raven.sqdev.ui/src/raven/sqdev/ui/util/IndexPair.java b/plugin/Raven.SQDev.UI/src/raven/sqdev/ui/util/IndexPair.java similarity index 100% rename from plugin/raven.sqdev.ui/src/raven/sqdev/ui/util/IndexPair.java rename to plugin/Raven.SQDev.UI/src/raven/sqdev/ui/util/IndexPair.java diff --git a/plugin/raven.sqdev.ui/src/raven/sqdev/ui/util/JFileChooserConfirmOverwrite.java b/plugin/Raven.SQDev.UI/src/raven/sqdev/ui/util/JFileChooserConfirmOverwrite.java similarity index 100% rename from plugin/raven.sqdev.ui/src/raven/sqdev/ui/util/JFileChooserConfirmOverwrite.java rename to plugin/Raven.SQDev.UI/src/raven/sqdev/ui/util/JFileChooserConfirmOverwrite.java diff --git a/plugin/raven.sqdev.ui/src/raven/sqdev/ui/util/TreeLayoutAdaptor.java b/plugin/Raven.SQDev.UI/src/raven/sqdev/ui/util/TreeLayoutAdaptor.java similarity index 100% rename from plugin/raven.sqdev.ui/src/raven/sqdev/ui/util/TreeLayoutAdaptor.java rename to plugin/Raven.SQDev.UI/src/raven/sqdev/ui/util/TreeLayoutAdaptor.java diff --git a/plugin/raven.sqdev.ui/src/raven/sqdev/ui/util/TreeViewer.java b/plugin/Raven.SQDev.UI/src/raven/sqdev/ui/util/TreeViewer.java similarity index 100% rename from plugin/raven.sqdev.ui/src/raven/sqdev/ui/util/TreeViewer.java rename to plugin/Raven.SQDev.UI/src/raven/sqdev/ui/util/TreeViewer.java diff --git a/plugin/raven.sqdev.ui/src/raven/sqdev/ui/views/RPTViewer.java b/plugin/Raven.SQDev.UI/src/raven/sqdev/ui/views/RPTViewer.java similarity index 100% rename from plugin/raven.sqdev.ui/src/raven/sqdev/ui/views/RPTViewer.java rename to plugin/Raven.SQDev.UI/src/raven/sqdev/ui/views/RPTViewer.java diff --git a/plugin/raven.sqdev.preferences/.classpath b/plugin/Raven.SQDev.Util/.classpath similarity index 100% rename from plugin/raven.sqdev.preferences/.classpath rename to plugin/Raven.SQDev.Util/.classpath diff --git a/plugin/raven.sqdev.util/.project b/plugin/Raven.SQDev.Util/.project similarity index 100% rename from plugin/raven.sqdev.util/.project rename to plugin/Raven.SQDev.Util/.project diff --git a/plugin/raven.sqdev.ui/.settings/org.eclipse.jdt.core.prefs b/plugin/Raven.SQDev.Util/.settings/org.eclipse.jdt.core.prefs similarity index 100% rename from plugin/raven.sqdev.ui/.settings/org.eclipse.jdt.core.prefs rename to plugin/Raven.SQDev.Util/.settings/org.eclipse.jdt.core.prefs diff --git a/plugin/raven.sqdev.util/META-INF/MANIFEST.MF b/plugin/Raven.SQDev.Util/META-INF/MANIFEST.MF similarity index 97% rename from plugin/raven.sqdev.util/META-INF/MANIFEST.MF rename to plugin/Raven.SQDev.Util/META-INF/MANIFEST.MF index 25eb4615..14f0a19c 100644 --- a/plugin/raven.sqdev.util/META-INF/MANIFEST.MF +++ b/plugin/Raven.SQDev.Util/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: Util Bundle-SymbolicName: raven.sqdev.util;singleton:=true -Bundle-Version: 0.7.0 +Bundle-Version: 0.7.2.stable Bundle-Activator: raven.sqdev.activator.Activator Bundle-Vendor: Raven Require-Bundle: org.eclipse.core.runtime, diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/actions/WikiAction$1.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/actions/WikiAction$1.class similarity index 100% rename from plugin/raven.sqdev.util/bin/raven/sqdev/actions/WikiAction$1.class rename to plugin/Raven.SQDev.Util/bin/raven/sqdev/actions/WikiAction$1.class diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/actions/WikiAction.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/actions/WikiAction.class similarity index 100% rename from plugin/raven.sqdev.util/bin/raven/sqdev/actions/WikiAction.class rename to plugin/Raven.SQDev.Util/bin/raven/sqdev/actions/WikiAction.class diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/activator/Activator.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/activator/Activator.class similarity index 100% rename from plugin/raven.sqdev.util/bin/raven/sqdev/activator/Activator.class rename to plugin/Raven.SQDev.Util/bin/raven/sqdev/activator/Activator.class diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/exceptions/FailedAtCreatingFileException.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/exceptions/FailedAtCreatingFileException.class similarity index 100% rename from plugin/raven.sqdev.util/bin/raven/sqdev/exceptions/FailedAtCreatingFileException.class rename to plugin/Raven.SQDev.Util/bin/raven/sqdev/exceptions/FailedAtCreatingFileException.class diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/exceptions/IllegalAccessStateException.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/exceptions/IllegalAccessStateException.class similarity index 100% rename from plugin/raven.sqdev.util/bin/raven/sqdev/exceptions/IllegalAccessStateException.class rename to plugin/Raven.SQDev.Util/bin/raven/sqdev/exceptions/IllegalAccessStateException.class diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/exceptions/IllegalRGBSyntaxException.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/exceptions/IllegalRGBSyntaxException.class similarity index 100% rename from plugin/raven.sqdev.util/bin/raven/sqdev/exceptions/IllegalRGBSyntaxException.class rename to plugin/Raven.SQDev.Util/bin/raven/sqdev/exceptions/IllegalRGBSyntaxException.class diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/exceptions/SQDevCoreException.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/exceptions/SQDevCoreException.class similarity index 100% rename from plugin/raven.sqdev.util/bin/raven/sqdev/exceptions/SQDevCoreException.class rename to plugin/Raven.SQDev.Util/bin/raven/sqdev/exceptions/SQDevCoreException.class diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/exceptions/SQDevException.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/exceptions/SQDevException.class similarity index 100% rename from plugin/raven.sqdev.util/bin/raven/sqdev/exceptions/SQDevException.class rename to plugin/Raven.SQDev.Util/bin/raven/sqdev/exceptions/SQDevException.class diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/exceptions/SQDevFileIsInvalidException.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/exceptions/SQDevFileIsInvalidException.class similarity index 100% rename from plugin/raven.sqdev.util/bin/raven/sqdev/exceptions/SQDevFileIsInvalidException.class rename to plugin/Raven.SQDev.Util/bin/raven/sqdev/exceptions/SQDevFileIsInvalidException.class diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/exceptions/SQDevFileNoSuchAttributeException.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/exceptions/SQDevFileNoSuchAttributeException.class similarity index 100% rename from plugin/raven.sqdev.util/bin/raven/sqdev/exceptions/SQDevFileNoSuchAttributeException.class rename to plugin/Raven.SQDev.Util/bin/raven/sqdev/exceptions/SQDevFileNoSuchAttributeException.class diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/exceptions/SQDevIllegalFileChangeException.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/exceptions/SQDevIllegalFileChangeException.class similarity index 100% rename from plugin/raven.sqdev.util/bin/raven/sqdev/exceptions/SQDevIllegalFileChangeException.class rename to plugin/Raven.SQDev.Util/bin/raven/sqdev/exceptions/SQDevIllegalFileChangeException.class diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/exceptions/SQDevInvalidPreferenceException.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/exceptions/SQDevInvalidPreferenceException.class similarity index 100% rename from plugin/raven.sqdev.util/bin/raven/sqdev/exceptions/SQDevInvalidPreferenceException.class rename to plugin/Raven.SQDev.Util/bin/raven/sqdev/exceptions/SQDevInvalidPreferenceException.class diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/miscellaneous/AdditionalKeywordProposalInformation.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/miscellaneous/AdditionalKeywordProposalInformation.class similarity index 100% rename from plugin/raven.sqdev.util/bin/raven/sqdev/miscellaneous/AdditionalKeywordProposalInformation.class rename to plugin/Raven.SQDev.Util/bin/raven/sqdev/miscellaneous/AdditionalKeywordProposalInformation.class diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/sqdevFile/ESQDevFileAnnotation$1.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/sqdevFile/ESQDevFileAnnotation$1.class similarity index 100% rename from plugin/raven.sqdev.util/bin/raven/sqdev/sqdevFile/ESQDevFileAnnotation$1.class rename to plugin/Raven.SQDev.Util/bin/raven/sqdev/sqdevFile/ESQDevFileAnnotation$1.class diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/sqdevFile/ESQDevFileAnnotation$2.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/sqdevFile/ESQDevFileAnnotation$2.class similarity index 100% rename from plugin/raven.sqdev.util/bin/raven/sqdev/sqdevFile/ESQDevFileAnnotation$2.class rename to plugin/Raven.SQDev.Util/bin/raven/sqdev/sqdevFile/ESQDevFileAnnotation$2.class diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/sqdevFile/ESQDevFileAnnotation.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/sqdevFile/ESQDevFileAnnotation.class similarity index 100% rename from plugin/raven.sqdev.util/bin/raven/sqdev/sqdevFile/ESQDevFileAnnotation.class rename to plugin/Raven.SQDev.Util/bin/raven/sqdev/sqdevFile/ESQDevFileAnnotation.class diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/sqdevFile/ESQDevFileAttribute$1.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/sqdevFile/ESQDevFileAttribute$1.class similarity index 100% rename from plugin/raven.sqdev.util/bin/raven/sqdev/sqdevFile/ESQDevFileAttribute$1.class rename to plugin/Raven.SQDev.Util/bin/raven/sqdev/sqdevFile/ESQDevFileAttribute$1.class diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/sqdevFile/ESQDevFileAttribute$2.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/sqdevFile/ESQDevFileAttribute$2.class similarity index 100% rename from plugin/raven.sqdev.util/bin/raven/sqdev/sqdevFile/ESQDevFileAttribute$2.class rename to plugin/Raven.SQDev.Util/bin/raven/sqdev/sqdevFile/ESQDevFileAttribute$2.class diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/sqdevFile/ESQDevFileAttribute$3.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/sqdevFile/ESQDevFileAttribute$3.class similarity index 100% rename from plugin/raven.sqdev.util/bin/raven/sqdev/sqdevFile/ESQDevFileAttribute$3.class rename to plugin/Raven.SQDev.Util/bin/raven/sqdev/sqdevFile/ESQDevFileAttribute$3.class diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/sqdevFile/ESQDevFileAttribute$4.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/sqdevFile/ESQDevFileAttribute$4.class similarity index 100% rename from plugin/raven.sqdev.util/bin/raven/sqdev/sqdevFile/ESQDevFileAttribute$4.class rename to plugin/Raven.SQDev.Util/bin/raven/sqdev/sqdevFile/ESQDevFileAttribute$4.class diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/sqdevFile/ESQDevFileAttribute.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/sqdevFile/ESQDevFileAttribute.class similarity index 100% rename from plugin/raven.sqdev.util/bin/raven/sqdev/sqdevFile/ESQDevFileAttribute.class rename to plugin/Raven.SQDev.Util/bin/raven/sqdev/sqdevFile/ESQDevFileAttribute.class diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/sqdevFile/ESQDevFileType$1.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/sqdevFile/ESQDevFileType$1.class similarity index 100% rename from plugin/raven.sqdev.util/bin/raven/sqdev/sqdevFile/ESQDevFileType$1.class rename to plugin/Raven.SQDev.Util/bin/raven/sqdev/sqdevFile/ESQDevFileType$1.class diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/sqdevFile/ESQDevFileType.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/sqdevFile/ESQDevFileType.class similarity index 100% rename from plugin/raven.sqdev.util/bin/raven/sqdev/sqdevFile/ESQDevFileType.class rename to plugin/Raven.SQDev.Util/bin/raven/sqdev/sqdevFile/ESQDevFileType.class diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/sqdevFile/SQDevFile.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/sqdevFile/SQDevFile.class similarity index 100% rename from plugin/raven.sqdev.util/bin/raven/sqdev/sqdevFile/SQDevFile.class rename to plugin/Raven.SQDev.Util/bin/raven/sqdev/sqdevFile/SQDevFile.class diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/startup/SQDevStarter.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/startup/SQDevStarter.class similarity index 100% rename from plugin/raven.sqdev.util/bin/raven/sqdev/startup/SQDevStarter.class rename to plugin/Raven.SQDev.Util/bin/raven/sqdev/startup/SQDevStarter.class diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/util/Activator.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/util/Activator.class similarity index 100% rename from plugin/raven.sqdev.util/bin/raven/sqdev/util/Activator.class rename to plugin/Raven.SQDev.Util/bin/raven/sqdev/util/Activator.class diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/util/EFileType$1.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/util/EFileType$1.class similarity index 100% rename from plugin/raven.sqdev.util/bin/raven/sqdev/util/EFileType$1.class rename to plugin/Raven.SQDev.Util/bin/raven/sqdev/util/EFileType$1.class diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/util/EFileType$2.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/util/EFileType$2.class similarity index 100% rename from plugin/raven.sqdev.util/bin/raven/sqdev/util/EFileType$2.class rename to plugin/Raven.SQDev.Util/bin/raven/sqdev/util/EFileType$2.class diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/util/EFileType$3.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/util/EFileType$3.class similarity index 100% rename from plugin/raven.sqdev.util/bin/raven/sqdev/util/EFileType$3.class rename to plugin/Raven.SQDev.Util/bin/raven/sqdev/util/EFileType$3.class diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/util/EFileType$4.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/util/EFileType$4.class similarity index 100% rename from plugin/raven.sqdev.util/bin/raven/sqdev/util/EFileType$4.class rename to plugin/Raven.SQDev.Util/bin/raven/sqdev/util/EFileType$4.class diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/util/EFileType$5.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/util/EFileType$5.class similarity index 100% rename from plugin/raven.sqdev.util/bin/raven/sqdev/util/EFileType$5.class rename to plugin/Raven.SQDev.Util/bin/raven/sqdev/util/EFileType$5.class diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/util/EFileType$6.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/util/EFileType$6.class similarity index 100% rename from plugin/raven.sqdev.util/bin/raven/sqdev/util/EFileType$6.class rename to plugin/Raven.SQDev.Util/bin/raven/sqdev/util/EFileType$6.class diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/util/EFileType$7.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/util/EFileType$7.class similarity index 100% rename from plugin/raven.sqdev.util/bin/raven/sqdev/util/EFileType$7.class rename to plugin/Raven.SQDev.Util/bin/raven/sqdev/util/EFileType$7.class diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/util/EFileType$8$1.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/util/EFileType$8$1.class similarity index 100% rename from plugin/raven.sqdev.util/bin/raven/sqdev/util/EFileType$8$1.class rename to plugin/Raven.SQDev.Util/bin/raven/sqdev/util/EFileType$8$1.class diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/util/EFileType$8.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/util/EFileType$8.class similarity index 100% rename from plugin/raven.sqdev.util/bin/raven/sqdev/util/EFileType$8.class rename to plugin/Raven.SQDev.Util/bin/raven/sqdev/util/EFileType$8.class diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/util/EFileType$9.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/util/EFileType$9.class similarity index 100% rename from plugin/raven.sqdev.util/bin/raven/sqdev/util/EFileType$9.class rename to plugin/Raven.SQDev.Util/bin/raven/sqdev/util/EFileType$9.class diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/util/EFileType.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/util/EFileType.class similarity index 100% rename from plugin/raven.sqdev.util/bin/raven/sqdev/util/EFileType.class rename to plugin/Raven.SQDev.Util/bin/raven/sqdev/util/EFileType.class diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/util/EProjectType.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/util/EProjectType.class similarity index 100% rename from plugin/raven.sqdev.util/bin/raven/sqdev/util/EProjectType.class rename to plugin/Raven.SQDev.Util/bin/raven/sqdev/util/EProjectType.class diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/util/EditorUtil.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/util/EditorUtil.class similarity index 100% rename from plugin/raven.sqdev.util/bin/raven/sqdev/util/EditorUtil.class rename to plugin/Raven.SQDev.Util/bin/raven/sqdev/util/EditorUtil.class diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/util/FileSystemUtil.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/util/FileSystemUtil.class similarity index 100% rename from plugin/raven.sqdev.util/bin/raven/sqdev/util/FileSystemUtil.class rename to plugin/Raven.SQDev.Util/bin/raven/sqdev/util/FileSystemUtil.class diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/util/ProjectUtil$1.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/util/ProjectUtil$1.class similarity index 58% rename from plugin/raven.sqdev.util/bin/raven/sqdev/util/ProjectUtil$1.class rename to plugin/Raven.SQDev.Util/bin/raven/sqdev/util/ProjectUtil$1.class index 7c2f9f19..d2e61257 100644 Binary files a/plugin/raven.sqdev.util/bin/raven/sqdev/util/ProjectUtil$1.class and b/plugin/Raven.SQDev.Util/bin/raven/sqdev/util/ProjectUtil$1.class differ diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/util/ProjectUtil.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/util/ProjectUtil.class similarity index 91% rename from plugin/raven.sqdev.util/bin/raven/sqdev/util/ProjectUtil.class rename to plugin/Raven.SQDev.Util/bin/raven/sqdev/util/ProjectUtil.class index ac5ecb96..5ce11c07 100644 Binary files a/plugin/raven.sqdev.util/bin/raven/sqdev/util/ProjectUtil.class and b/plugin/Raven.SQDev.Util/bin/raven/sqdev/util/ProjectUtil.class differ diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/util/SQDevInformation.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/util/SQDevInformation.class similarity index 100% rename from plugin/raven.sqdev.util/bin/raven/sqdev/util/SQDevInformation.class rename to plugin/Raven.SQDev.Util/bin/raven/sqdev/util/SQDevInformation.class diff --git a/plugin/Raven.SQDev.Util/bin/raven/sqdev/util/SQDevProjectBuilder.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/util/SQDevProjectBuilder.class new file mode 100644 index 00000000..e5091fdd Binary files /dev/null and b/plugin/Raven.SQDev.Util/bin/raven/sqdev/util/SQDevProjectBuilder.class differ diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/util/StringUtils.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/util/StringUtils.class similarity index 100% rename from plugin/raven.sqdev.util/bin/raven/sqdev/util/StringUtils.class rename to plugin/Raven.SQDev.Util/bin/raven/sqdev/util/StringUtils.class diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/util/Util$1.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/util/Util$1.class similarity index 100% rename from plugin/raven.sqdev.util/bin/raven/sqdev/util/Util$1.class rename to plugin/Raven.SQDev.Util/bin/raven/sqdev/util/Util$1.class diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/util/Util.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/util/Util.class similarity index 100% rename from plugin/raven.sqdev.util/bin/raven/sqdev/util/Util.class rename to plugin/Raven.SQDev.Util/bin/raven/sqdev/util/Util.class diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/utilInterfaces/ISQDevInformationProvider.class b/plugin/Raven.SQDev.Util/bin/raven/sqdev/utilInterfaces/ISQDevInformationProvider.class similarity index 100% rename from plugin/raven.sqdev.util/bin/raven/sqdev/utilInterfaces/ISQDevInformationProvider.class rename to plugin/Raven.SQDev.Util/bin/raven/sqdev/utilInterfaces/ISQDevInformationProvider.class diff --git a/plugin/raven.sqdev.preferences/build.properties b/plugin/Raven.SQDev.Util/build.properties similarity index 100% rename from plugin/raven.sqdev.preferences/build.properties rename to plugin/Raven.SQDev.Util/build.properties diff --git a/plugin/raven.sqdev.util/plugin.xml b/plugin/Raven.SQDev.Util/plugin.xml similarity index 100% rename from plugin/raven.sqdev.util/plugin.xml rename to plugin/Raven.SQDev.Util/plugin.xml diff --git a/plugin/raven.sqdev.util/src/raven/sqdev/actions/WikiAction.java b/plugin/Raven.SQDev.Util/src/raven/sqdev/actions/WikiAction.java similarity index 100% rename from plugin/raven.sqdev.util/src/raven/sqdev/actions/WikiAction.java rename to plugin/Raven.SQDev.Util/src/raven/sqdev/actions/WikiAction.java diff --git a/plugin/raven.sqdev.util/src/raven/sqdev/activator/Activator.java b/plugin/Raven.SQDev.Util/src/raven/sqdev/activator/Activator.java similarity index 100% rename from plugin/raven.sqdev.util/src/raven/sqdev/activator/Activator.java rename to plugin/Raven.SQDev.Util/src/raven/sqdev/activator/Activator.java diff --git a/plugin/raven.sqdev.util/src/raven/sqdev/exceptions/FailedAtCreatingFileException.java b/plugin/Raven.SQDev.Util/src/raven/sqdev/exceptions/FailedAtCreatingFileException.java similarity index 100% rename from plugin/raven.sqdev.util/src/raven/sqdev/exceptions/FailedAtCreatingFileException.java rename to plugin/Raven.SQDev.Util/src/raven/sqdev/exceptions/FailedAtCreatingFileException.java diff --git a/plugin/raven.sqdev.util/src/raven/sqdev/exceptions/IllegalAccessStateException.java b/plugin/Raven.SQDev.Util/src/raven/sqdev/exceptions/IllegalAccessStateException.java similarity index 100% rename from plugin/raven.sqdev.util/src/raven/sqdev/exceptions/IllegalAccessStateException.java rename to plugin/Raven.SQDev.Util/src/raven/sqdev/exceptions/IllegalAccessStateException.java diff --git a/plugin/raven.sqdev.util/src/raven/sqdev/exceptions/IllegalRGBSyntaxException.java b/plugin/Raven.SQDev.Util/src/raven/sqdev/exceptions/IllegalRGBSyntaxException.java similarity index 100% rename from plugin/raven.sqdev.util/src/raven/sqdev/exceptions/IllegalRGBSyntaxException.java rename to plugin/Raven.SQDev.Util/src/raven/sqdev/exceptions/IllegalRGBSyntaxException.java diff --git a/plugin/raven.sqdev.util/src/raven/sqdev/exceptions/SQDevCoreException.java b/plugin/Raven.SQDev.Util/src/raven/sqdev/exceptions/SQDevCoreException.java similarity index 100% rename from plugin/raven.sqdev.util/src/raven/sqdev/exceptions/SQDevCoreException.java rename to plugin/Raven.SQDev.Util/src/raven/sqdev/exceptions/SQDevCoreException.java diff --git a/plugin/raven.sqdev.util/src/raven/sqdev/exceptions/SQDevException.java b/plugin/Raven.SQDev.Util/src/raven/sqdev/exceptions/SQDevException.java similarity index 100% rename from plugin/raven.sqdev.util/src/raven/sqdev/exceptions/SQDevException.java rename to plugin/Raven.SQDev.Util/src/raven/sqdev/exceptions/SQDevException.java diff --git a/plugin/raven.sqdev.util/src/raven/sqdev/exceptions/SQDevFileIsInvalidException.java b/plugin/Raven.SQDev.Util/src/raven/sqdev/exceptions/SQDevFileIsInvalidException.java similarity index 100% rename from plugin/raven.sqdev.util/src/raven/sqdev/exceptions/SQDevFileIsInvalidException.java rename to plugin/Raven.SQDev.Util/src/raven/sqdev/exceptions/SQDevFileIsInvalidException.java diff --git a/plugin/raven.sqdev.util/src/raven/sqdev/exceptions/SQDevFileNoSuchAttributeException.java b/plugin/Raven.SQDev.Util/src/raven/sqdev/exceptions/SQDevFileNoSuchAttributeException.java similarity index 100% rename from plugin/raven.sqdev.util/src/raven/sqdev/exceptions/SQDevFileNoSuchAttributeException.java rename to plugin/Raven.SQDev.Util/src/raven/sqdev/exceptions/SQDevFileNoSuchAttributeException.java diff --git a/plugin/raven.sqdev.util/src/raven/sqdev/exceptions/SQDevIllegalFileChangeException.java b/plugin/Raven.SQDev.Util/src/raven/sqdev/exceptions/SQDevIllegalFileChangeException.java similarity index 100% rename from plugin/raven.sqdev.util/src/raven/sqdev/exceptions/SQDevIllegalFileChangeException.java rename to plugin/Raven.SQDev.Util/src/raven/sqdev/exceptions/SQDevIllegalFileChangeException.java diff --git a/plugin/raven.sqdev.util/src/raven/sqdev/exceptions/SQDevInvalidPreferenceException.java b/plugin/Raven.SQDev.Util/src/raven/sqdev/exceptions/SQDevInvalidPreferenceException.java similarity index 100% rename from plugin/raven.sqdev.util/src/raven/sqdev/exceptions/SQDevInvalidPreferenceException.java rename to plugin/Raven.SQDev.Util/src/raven/sqdev/exceptions/SQDevInvalidPreferenceException.java diff --git a/plugin/raven.sqdev.util/src/raven/sqdev/miscellaneous/AdditionalKeywordProposalInformation.java b/plugin/Raven.SQDev.Util/src/raven/sqdev/miscellaneous/AdditionalKeywordProposalInformation.java similarity index 100% rename from plugin/raven.sqdev.util/src/raven/sqdev/miscellaneous/AdditionalKeywordProposalInformation.java rename to plugin/Raven.SQDev.Util/src/raven/sqdev/miscellaneous/AdditionalKeywordProposalInformation.java diff --git a/plugin/raven.sqdev.util/src/raven/sqdev/sqdevFile/ESQDevFileAnnotation.java b/plugin/Raven.SQDev.Util/src/raven/sqdev/sqdevFile/ESQDevFileAnnotation.java similarity index 100% rename from plugin/raven.sqdev.util/src/raven/sqdev/sqdevFile/ESQDevFileAnnotation.java rename to plugin/Raven.SQDev.Util/src/raven/sqdev/sqdevFile/ESQDevFileAnnotation.java diff --git a/plugin/raven.sqdev.util/src/raven/sqdev/sqdevFile/ESQDevFileAttribute.java b/plugin/Raven.SQDev.Util/src/raven/sqdev/sqdevFile/ESQDevFileAttribute.java similarity index 100% rename from plugin/raven.sqdev.util/src/raven/sqdev/sqdevFile/ESQDevFileAttribute.java rename to plugin/Raven.SQDev.Util/src/raven/sqdev/sqdevFile/ESQDevFileAttribute.java diff --git a/plugin/raven.sqdev.util/src/raven/sqdev/sqdevFile/ESQDevFileType.java b/plugin/Raven.SQDev.Util/src/raven/sqdev/sqdevFile/ESQDevFileType.java similarity index 100% rename from plugin/raven.sqdev.util/src/raven/sqdev/sqdevFile/ESQDevFileType.java rename to plugin/Raven.SQDev.Util/src/raven/sqdev/sqdevFile/ESQDevFileType.java diff --git a/plugin/raven.sqdev.util/src/raven/sqdev/sqdevFile/SQDevFile.java b/plugin/Raven.SQDev.Util/src/raven/sqdev/sqdevFile/SQDevFile.java similarity index 100% rename from plugin/raven.sqdev.util/src/raven/sqdev/sqdevFile/SQDevFile.java rename to plugin/Raven.SQDev.Util/src/raven/sqdev/sqdevFile/SQDevFile.java diff --git a/plugin/raven.sqdev.util/src/raven/sqdev/startup/SQDevStarter.java b/plugin/Raven.SQDev.Util/src/raven/sqdev/startup/SQDevStarter.java similarity index 100% rename from plugin/raven.sqdev.util/src/raven/sqdev/startup/SQDevStarter.java rename to plugin/Raven.SQDev.Util/src/raven/sqdev/startup/SQDevStarter.java diff --git a/plugin/raven.sqdev.util/src/raven/sqdev/util/Activator.java b/plugin/Raven.SQDev.Util/src/raven/sqdev/util/Activator.java similarity index 100% rename from plugin/raven.sqdev.util/src/raven/sqdev/util/Activator.java rename to plugin/Raven.SQDev.Util/src/raven/sqdev/util/Activator.java diff --git a/plugin/raven.sqdev.util/src/raven/sqdev/util/EFileType.java b/plugin/Raven.SQDev.Util/src/raven/sqdev/util/EFileType.java similarity index 100% rename from plugin/raven.sqdev.util/src/raven/sqdev/util/EFileType.java rename to plugin/Raven.SQDev.Util/src/raven/sqdev/util/EFileType.java diff --git a/plugin/raven.sqdev.util/src/raven/sqdev/util/EProjectType.java b/plugin/Raven.SQDev.Util/src/raven/sqdev/util/EProjectType.java similarity index 100% rename from plugin/raven.sqdev.util/src/raven/sqdev/util/EProjectType.java rename to plugin/Raven.SQDev.Util/src/raven/sqdev/util/EProjectType.java diff --git a/plugin/raven.sqdev.util/src/raven/sqdev/util/EditorUtil.java b/plugin/Raven.SQDev.Util/src/raven/sqdev/util/EditorUtil.java similarity index 100% rename from plugin/raven.sqdev.util/src/raven/sqdev/util/EditorUtil.java rename to plugin/Raven.SQDev.Util/src/raven/sqdev/util/EditorUtil.java diff --git a/plugin/raven.sqdev.util/src/raven/sqdev/util/FileSystemUtil.java b/plugin/Raven.SQDev.Util/src/raven/sqdev/util/FileSystemUtil.java similarity index 100% rename from plugin/raven.sqdev.util/src/raven/sqdev/util/FileSystemUtil.java rename to plugin/Raven.SQDev.Util/src/raven/sqdev/util/FileSystemUtil.java diff --git a/plugin/raven.sqdev.util/src/raven/sqdev/util/ProjectUtil.java b/plugin/Raven.SQDev.Util/src/raven/sqdev/util/ProjectUtil.java similarity index 99% rename from plugin/raven.sqdev.util/src/raven/sqdev/util/ProjectUtil.java rename to plugin/Raven.SQDev.Util/src/raven/sqdev/util/ProjectUtil.java index dffe0e86..946f930d 100644 --- a/plugin/raven.sqdev.util/src/raven/sqdev/util/ProjectUtil.java +++ b/plugin/Raven.SQDev.Util/src/raven/sqdev/util/ProjectUtil.java @@ -21,6 +21,7 @@ import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.Path; +import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.jobs.Job; import org.eclipse.core.runtime.preferences.IEclipsePreferences; import org.eclipse.core.runtime.preferences.IScopeContext; @@ -372,7 +373,8 @@ protected IStatus run(IProgressMonitor monitor) { "Failed at building project " + projectName, e); info.open(false); } - return null; + + return Status.OK_STATUS; } }; buildJob.schedule(); diff --git a/plugin/raven.sqdev.util/src/raven/sqdev/util/SQDevInformation.java b/plugin/Raven.SQDev.Util/src/raven/sqdev/util/SQDevInformation.java similarity index 100% rename from plugin/raven.sqdev.util/src/raven/sqdev/util/SQDevInformation.java rename to plugin/Raven.SQDev.Util/src/raven/sqdev/util/SQDevInformation.java diff --git a/plugin/raven.sqdev.util/src/raven/sqdev/util/SQDevProjectBuilder.java b/plugin/Raven.SQDev.Util/src/raven/sqdev/util/SQDevProjectBuilder.java similarity index 53% rename from plugin/raven.sqdev.util/src/raven/sqdev/util/SQDevProjectBuilder.java rename to plugin/Raven.SQDev.Util/src/raven/sqdev/util/SQDevProjectBuilder.java index 853b1652..6fecbea9 100644 --- a/plugin/raven.sqdev.util/src/raven/sqdev/util/SQDevProjectBuilder.java +++ b/plugin/Raven.SQDev.Util/src/raven/sqdev/util/SQDevProjectBuilder.java @@ -7,10 +7,6 @@ import java.util.List; import java.util.Map; -import org.antlr.v4.runtime.ANTLRInputStream; -import org.antlr.v4.runtime.CommonTokenStream; -import org.antlr.v4.runtime.atn.PredictionMode; -import org.antlr.v4.runtime.tree.ParseTreeWalker; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IFolder; import org.eclipse.core.resources.IMarker; @@ -24,50 +20,43 @@ import raven.sqdev.misc.FileUtil; import raven.sqdev.misc.Marker; import raven.sqdev.misc.SQDevInfobox; -import raven.sqdev.parser.misc.ParseResult; -import raven.sqdev.parser.preprocessor.PreprocessorErrorListener; -import raven.sqdev.parser.preprocessor.PreprocessorLexer; -import raven.sqdev.parser.preprocessor.PreprocessorParseListener; +import raven.sqdev.parser.misc.ParseUtil; import raven.sqdev.parser.preprocessor.PreprocessorParseResult; -import raven.sqdev.parser.preprocessor.PreprocessorParser; -import raven.sqdev.parser.sqf.SQFLexer; import raven.sqdev.parser.sqf.SQFParseInformation; -import raven.sqdev.parser.sqf.SQFParser; -import raven.sqdev.parser.sqf.SQFValidator; +import raven.sqdev.parser.sqf.SQFParseResult; public class SQDevProjectBuilder extends IncrementalProjectBuilder { - + @Override - protected IProject[] build(int kind, Map args, - IProgressMonitor monitor) throws CoreException { - + protected IProject[] build(int kind, Map args, IProgressMonitor monitor) + throws CoreException { + try { switch (kind) { - case INCREMENTAL_BUILD: + case INCREMENTAL_BUILD: + incrementalBuild(monitor); + break; + case FULL_BUILD: + fullBuild(monitor); + break; + case AUTO_BUILD: + if (getDelta(getProject()) != null) { incrementalBuild(monitor); - break; - case FULL_BUILD: + } else { fullBuild(monitor); - break; - case AUTO_BUILD: - if (getDelta(getProject()) != null) { - incrementalBuild(monitor); - } else { - fullBuild(monitor); - } - break; + } + break; } } catch (IOException e) { e.printStackTrace(); - - SQDevInfobox info = new SQDevInfobox( - "Errors during project building", e); + + SQDevInfobox info = new SQDevInfobox("Errors during project building", e); info.open(false); } - + return null; } - + /** * Performs an incremental build of the project. This method relies on * {@link #getDelta(IProject)} @@ -80,17 +69,16 @@ protected IProject[] build(int kind, Map args, */ protected void incrementalBuild(IProgressMonitor monitor) throws FileNotFoundException, IOException, CoreException { - monitor.beginTask("Building " + getProject().getName(), - IProgressMonitor.UNKNOWN); - + monitor.beginTask("Building " + getProject().getName(), IProgressMonitor.UNKNOWN); + IResourceDelta delta = getDelta(getProject()); - + // parse changed files only parseChangedFiles(delta); - + monitor.done(); } - + /** * Parses the changed files in the given delta * @@ -102,8 +90,8 @@ protected void incrementalBuild(IProgressMonitor monitor) */ private void parseChangedFiles(IResourceDelta delta) throws FileNotFoundException, IOException, CoreException { - for (IResourceDelta currentResourceDelta : delta - .getAffectedChildren(IResourceDelta.CHANGED, IResource.FILE)) { + for (IResourceDelta currentResourceDelta : delta.getAffectedChildren(IResourceDelta.CHANGED, + IResource.FILE)) { if (currentResourceDelta.getResource() instanceof IFile) { parseSQFFile((IFile) currentResourceDelta.getResource()); } else { @@ -111,7 +99,7 @@ private void parseChangedFiles(IResourceDelta delta) } } } - + /** * Performs a full build of the project. * @@ -124,25 +112,24 @@ private void parseChangedFiles(IResourceDelta delta) protected void fullBuild(IProgressMonitor monitor) throws CoreException, FileNotFoundException, IOException { List files = getProjectChildren(IResource.FILE); - - monitor.beginTask("Building project " + getProject().getName(), - files.size()); - + + monitor.beginTask("Building project " + getProject().getName(), files.size()); + for (IResource currentResource : files) { if (monitor.isCanceled()) { break; } - + parseSQFFile((IFile) currentResource); monitor.worked(1); } - + monitor.done(); } - + /** - * Parses the given SQF file. If the given file is not a SQF file this - * method returns without doing anything + * Parses the given SQF file. If the given file is not a SQF file this method + * returns without doing anything * * @param file * The SQF file to parse @@ -150,64 +137,35 @@ protected void fullBuild(IProgressMonitor monitor) * @throws FileNotFoundException * @throws CoreException */ - protected void parseSQFFile(IFile file) - throws FileNotFoundException, IOException, CoreException { - if (file.getFileExtension() == null - || !file.getFileExtension().toLowerCase().equals("sqf")) { + protected void parseSQFFile(IFile file) throws FileNotFoundException, IOException, CoreException { + if (file.getFileExtension() == null || !file.getFileExtension().toLowerCase().equals("sqf")) { // Only parse SQF files return; } + System.out.println("Parsing " + file.getName()); - - final String fileContent = FileUtil - .readAll(new FileInputStream(file.getLocation().toFile())); - - ParseTreeWalker parseWalker = new ParseTreeWalker(); - // TODO: add parser and lexer error listener - // preprocess the file - ANTLRInputStream prepInput = new ANTLRInputStream(fileContent); - PreprocessorLexer prepLexer = new PreprocessorLexer(prepInput); - - CommonTokenStream prepTokens = new CommonTokenStream(prepLexer); - - PreprocessorParser prepParser = new PreprocessorParser(prepTokens); - prepParser.getInterpreter().setPredictionMode(PredictionMode.SLL); - prepParser.removeErrorListeners(); - PreprocessorErrorListener errorListener = new PreprocessorErrorListener( - 0); - prepParser.addErrorListener(errorListener); - - PreprocessorParseListener preprocessorListener = new PreprocessorParseListener( + + final String fileContent = FileUtil.readAll(new FileInputStream(file.getLocation().toFile())); + + PreprocessorParseResult prepResult = ParseUtil.parseAndValidatePreprocess(fileContent, file.getLocation()); - - parseWalker.walk(preprocessorListener, prepParser.start()); - - PreprocessorParseResult preprocessResult = preprocessorListener - .getParseResult(); - - - // Parse the file - SQFParseInformation info = new SQFParseInformation( - preprocessResult.getMacros()); - - ANTLRInputStream sqfInput = new ANTLRInputStream(fileContent); - SQFLexer sqfLexer = new SQFLexer(sqfInput, - info.getBinaryOperatorNames(), info.getUnaryOperatorNames(), - info.getMacroNames()); - CommonTokenStream sqfTokens = new CommonTokenStream(sqfLexer); - SQFParser sqfParser = new SQFParser(sqfTokens); - sqfParser.getInterpreter().setPredictionMode(PredictionMode.SLL); - SQFValidator validator = new SQFValidator(info, sqfTokens); - - parseWalker.walk(validator, sqfParser.start()); - - // merge results - ParseResult result = validator.getParseResult(); - result.mergeWith(preprocessResult); - result.mergeWith(errorListener.getParseResult()); - + + // create parse information with default values + SQFParseInformation info = new SQFParseInformation(prepResult.getMacros()); + + SQFParseResult sqfResult = ParseUtil.parseSQF(fileContent, info); + + sqfResult + .mergeWith(ParseUtil.validateSQF(sqfResult.getParseTree(), sqfResult.getTokenStream(), info)); + + sqfResult.mergeWith(prepResult); + + + // clear old markers + file.deleteMarkers(IMarker.PROBLEM, true, IResource.DEPTH_INFINITE); + // apply markers - for (Marker currentMarker : result.getMarkers()) { + for (Marker currentMarker : sqfResult.getMarkers()) { // find line int line = 1; for (int i = 0; i < currentMarker.getOffset(); i++) { @@ -215,20 +173,16 @@ protected void parseSQFFile(IFile file) line++; } } - + IMarker fileMarker = file.createMarker(currentMarker.getType()); fileMarker.setAttribute(IMarker.LINE_NUMBER, line); - fileMarker.setAttribute(IMarker.MESSAGE, - currentMarker.getMessage()); - fileMarker.setAttribute(IMarker.SEVERITY, - currentMarker.getSeverity()); - fileMarker.setAttribute(IMarker.CHAR_START, - currentMarker.getOffset()); - fileMarker.setAttribute(IMarker.CHAR_END, - currentMarker.getOffset() + currentMarker.getLength()); + fileMarker.setAttribute(IMarker.MESSAGE, currentMarker.getMessage()); + fileMarker.setAttribute(IMarker.SEVERITY, currentMarker.getSeverity()); + fileMarker.setAttribute(IMarker.CHAR_START, currentMarker.getOffset()); + fileMarker.setAttribute(IMarker.CHAR_END, currentMarker.getOffset() + currentMarker.getLength()); } } - + /** * Gets the children of this project of the given type. * @@ -240,28 +194,24 @@ protected void parseSQFFile(IFile file) */ private List getProjectChildren(int type) throws CoreException { List resources = new ArrayList(); - + for (IResource currentResource : getProject().members()) { - if (type == IResource.NONE - || (currentResource.getType() & type) == type) { + if (type == IResource.NONE || (currentResource.getType() & type) == type) { resources.add(currentResource); } - + if (currentResource instanceof IFolder) { - for (IResource currentInnerResource : getAllChildrenOf( - (IFolder) currentResource)) { - if (type == IResource.NONE - || (currentInnerResource.getType() - & type) == type) { + for (IResource currentInnerResource : getAllChildrenOf((IFolder) currentResource)) { + if (type == IResource.NONE || (currentInnerResource.getType() & type) == type) { resources.add(currentInnerResource); } } } } - + return resources; } - + /** * Gets all child resource in the given folder * @@ -270,19 +220,18 @@ private List getProjectChildren(int type) throws CoreException { * @return A list of the respective children * @throws CoreException */ - private List getAllChildrenOf(IFolder folder) - throws CoreException { + private List getAllChildrenOf(IFolder folder) throws CoreException { List resources = new ArrayList(); - + for (IResource currentResource : folder.members()) { resources.add(currentResource); - + if (currentResource instanceof IFolder) { resources.addAll(getAllChildrenOf((IFolder) currentResource)); } } - + return resources; } - + } diff --git a/plugin/raven.sqdev.util/src/raven/sqdev/util/StringUtils.java b/plugin/Raven.SQDev.Util/src/raven/sqdev/util/StringUtils.java similarity index 100% rename from plugin/raven.sqdev.util/src/raven/sqdev/util/StringUtils.java rename to plugin/Raven.SQDev.Util/src/raven/sqdev/util/StringUtils.java diff --git a/plugin/raven.sqdev.util/src/raven/sqdev/util/Util.java b/plugin/Raven.SQDev.Util/src/raven/sqdev/util/Util.java similarity index 100% rename from plugin/raven.sqdev.util/src/raven/sqdev/util/Util.java rename to plugin/Raven.SQDev.Util/src/raven/sqdev/util/Util.java diff --git a/plugin/raven.sqdev.util/src/raven/sqdev/utilInterfaces/ISQDevInformationProvider.java b/plugin/Raven.SQDev.Util/src/raven/sqdev/utilInterfaces/ISQDevInformationProvider.java similarity index 100% rename from plugin/raven.sqdev.util/src/raven/sqdev/utilInterfaces/ISQDevInformationProvider.java rename to plugin/Raven.SQDev.Util/src/raven/sqdev/utilInterfaces/ISQDevInformationProvider.java diff --git a/plugin/raven.sqdev.util/.classpath b/plugin/Raven.SQDev.Wizards/.classpath similarity index 100% rename from plugin/raven.sqdev.util/.classpath rename to plugin/Raven.SQDev.Wizards/.classpath diff --git a/plugin/raven.sqdev.wizards/.project b/plugin/Raven.SQDev.Wizards/.project similarity index 100% rename from plugin/raven.sqdev.wizards/.project rename to plugin/Raven.SQDev.Wizards/.project diff --git a/plugin/raven.sqdev.util/.settings/org.eclipse.jdt.core.prefs b/plugin/Raven.SQDev.Wizards/.settings/org.eclipse.jdt.core.prefs similarity index 100% rename from plugin/raven.sqdev.util/.settings/org.eclipse.jdt.core.prefs rename to plugin/Raven.SQDev.Wizards/.settings/org.eclipse.jdt.core.prefs diff --git a/plugin/raven.sqdev.wizards/META-INF/MANIFEST.MF b/plugin/Raven.SQDev.Wizards/META-INF/MANIFEST.MF similarity index 100% rename from plugin/raven.sqdev.wizards/META-INF/MANIFEST.MF rename to plugin/Raven.SQDev.Wizards/META-INF/MANIFEST.MF diff --git a/plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/SQDevBaseNewFileWizard.class b/plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/SQDevBaseNewFileWizard.class similarity index 100% rename from plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/SQDevBaseNewFileWizard.class rename to plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/SQDevBaseNewFileWizard.class diff --git a/plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/SQDevBaseNewProjectWizard.class b/plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/SQDevBaseNewProjectWizard.class similarity index 100% rename from plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/SQDevBaseNewProjectWizard.class rename to plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/SQDevBaseNewProjectWizard.class diff --git a/plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/activator/Activator.class b/plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/activator/Activator.class similarity index 100% rename from plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/activator/Activator.class rename to plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/activator/Activator.class diff --git a/plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/exceptions/FailedAtCreatingFileException.class b/plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/exceptions/FailedAtCreatingFileException.class similarity index 100% rename from plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/exceptions/FailedAtCreatingFileException.class rename to plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/exceptions/FailedAtCreatingFileException.class diff --git a/plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/export/SQDevExportWizard$1.class b/plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/export/SQDevExportWizard$1.class similarity index 100% rename from plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/export/SQDevExportWizard$1.class rename to plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/export/SQDevExportWizard$1.class diff --git a/plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/export/SQDevExportWizard.class b/plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/export/SQDevExportWizard.class similarity index 100% rename from plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/export/SQDevExportWizard.class rename to plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/export/SQDevExportWizard.class diff --git a/plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/export/SQDevExportWizardPage$1.class b/plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/export/SQDevExportWizardPage$1.class similarity index 100% rename from plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/export/SQDevExportWizardPage$1.class rename to plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/export/SQDevExportWizardPage$1.class diff --git a/plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/export/SQDevExportWizardPage$2.class b/plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/export/SQDevExportWizardPage$2.class similarity index 100% rename from plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/export/SQDevExportWizardPage$2.class rename to plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/export/SQDevExportWizardPage$2.class diff --git a/plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/export/SQDevExportWizardPage.class b/plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/export/SQDevExportWizardPage.class similarity index 100% rename from plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/export/SQDevExportWizardPage.class rename to plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/export/SQDevExportWizardPage.class diff --git a/plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/importWizard/SQDevImportWizard$1.class b/plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/importWizard/SQDevImportWizard$1.class similarity index 100% rename from plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/importWizard/SQDevImportWizard$1.class rename to plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/importWizard/SQDevImportWizard$1.class diff --git a/plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/importWizard/SQDevImportWizard.class b/plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/importWizard/SQDevImportWizard.class similarity index 100% rename from plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/importWizard/SQDevImportWizard.class rename to plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/importWizard/SQDevImportWizard.class diff --git a/plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/importWizard/SQDevImportWizardPage$1.class b/plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/importWizard/SQDevImportWizardPage$1.class similarity index 100% rename from plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/importWizard/SQDevImportWizardPage$1.class rename to plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/importWizard/SQDevImportWizardPage$1.class diff --git a/plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/importWizard/SQDevImportWizardPage$2.class b/plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/importWizard/SQDevImportWizardPage$2.class similarity index 100% rename from plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/importWizard/SQDevImportWizardPage$2.class rename to plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/importWizard/SQDevImportWizardPage$2.class diff --git a/plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/importWizard/SQDevImportWizardPage.class b/plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/importWizard/SQDevImportWizardPage.class similarity index 100% rename from plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/importWizard/SQDevImportWizardPage.class rename to plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/importWizard/SQDevImportWizardPage.class diff --git a/plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/sqdevProject/SQDevProjectWizard.class b/plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/sqdevProject/SQDevProjectWizard.class similarity index 100% rename from plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/sqdevProject/SQDevProjectWizard.class rename to plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/sqdevProject/SQDevProjectWizard.class diff --git a/plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/sqdevProject/SQDevProjectWizardPage$1.class b/plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/sqdevProject/SQDevProjectWizardPage$1.class similarity index 100% rename from plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/sqdevProject/SQDevProjectWizardPage$1.class rename to plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/sqdevProject/SQDevProjectWizardPage$1.class diff --git a/plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/sqdevProject/SQDevProjectWizardPage$2.class b/plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/sqdevProject/SQDevProjectWizardPage$2.class similarity index 100% rename from plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/sqdevProject/SQDevProjectWizardPage$2.class rename to plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/sqdevProject/SQDevProjectWizardPage$2.class diff --git a/plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/sqdevProject/SQDevProjectWizardPage$3.class b/plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/sqdevProject/SQDevProjectWizardPage$3.class similarity index 100% rename from plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/sqdevProject/SQDevProjectWizardPage$3.class rename to plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/sqdevProject/SQDevProjectWizardPage$3.class diff --git a/plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/sqdevProject/SQDevProjectWizardPage$4.class b/plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/sqdevProject/SQDevProjectWizardPage$4.class similarity index 100% rename from plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/sqdevProject/SQDevProjectWizardPage$4.class rename to plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/sqdevProject/SQDevProjectWizardPage$4.class diff --git a/plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/sqdevProject/SQDevProjectWizardPage$5.class b/plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/sqdevProject/SQDevProjectWizardPage$5.class similarity index 100% rename from plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/sqdevProject/SQDevProjectWizardPage$5.class rename to plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/sqdevProject/SQDevProjectWizardPage$5.class diff --git a/plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/sqdevProject/SQDevProjectWizardPage.class b/plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/sqdevProject/SQDevProjectWizardPage.class similarity index 100% rename from plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/sqdevProject/SQDevProjectWizardPage.class rename to plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/sqdevProject/SQDevProjectWizardPage.class diff --git a/plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/sqfNewFileWizard/SqfNewFileWizard.class b/plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/sqfNewFileWizard/SqfNewFileWizard.class similarity index 100% rename from plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/sqfNewFileWizard/SqfNewFileWizard.class rename to plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/sqfNewFileWizard/SqfNewFileWizard.class diff --git a/plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/sqfNewFileWizard/SqfNewFileWizardPage$1.class b/plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/sqfNewFileWizard/SqfNewFileWizardPage$1.class similarity index 100% rename from plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/sqfNewFileWizard/SqfNewFileWizardPage$1.class rename to plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/sqfNewFileWizard/SqfNewFileWizardPage$1.class diff --git a/plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/sqfNewFileWizard/SqfNewFileWizardPage.class b/plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/sqfNewFileWizard/SqfNewFileWizardPage.class similarity index 100% rename from plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/sqfNewFileWizard/SqfNewFileWizardPage.class rename to plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/sqfNewFileWizard/SqfNewFileWizardPage.class diff --git a/plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/stringtable/StringTableWizard.class b/plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/stringtable/StringTableWizard.class similarity index 100% rename from plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/stringtable/StringTableWizard.class rename to plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/stringtable/StringTableWizard.class diff --git a/plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/stringtable/StringTableWizardPage.class b/plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/stringtable/StringTableWizardPage.class similarity index 100% rename from plugin/raven.sqdev.wizards/bin/raven/sqdev/wizards/stringtable/StringTableWizardPage.class rename to plugin/Raven.SQDev.Wizards/bin/raven/sqdev/wizards/stringtable/StringTableWizardPage.class diff --git a/plugin/raven.sqdev.util/build.properties b/plugin/Raven.SQDev.Wizards/build.properties similarity index 100% rename from plugin/raven.sqdev.util/build.properties rename to plugin/Raven.SQDev.Wizards/build.properties diff --git a/plugin/raven.sqdev.wizards/plugin.xml b/plugin/Raven.SQDev.Wizards/plugin.xml similarity index 100% rename from plugin/raven.sqdev.wizards/plugin.xml rename to plugin/Raven.SQDev.Wizards/plugin.xml diff --git a/plugin/raven.sqdev.wizards/src/raven/sqdev/wizards/SQDevBaseNewFileWizard.java b/plugin/Raven.SQDev.Wizards/src/raven/sqdev/wizards/SQDevBaseNewFileWizard.java similarity index 100% rename from plugin/raven.sqdev.wizards/src/raven/sqdev/wizards/SQDevBaseNewFileWizard.java rename to plugin/Raven.SQDev.Wizards/src/raven/sqdev/wizards/SQDevBaseNewFileWizard.java diff --git a/plugin/raven.sqdev.wizards/src/raven/sqdev/wizards/SQDevBaseNewProjectWizard.java b/plugin/Raven.SQDev.Wizards/src/raven/sqdev/wizards/SQDevBaseNewProjectWizard.java similarity index 100% rename from plugin/raven.sqdev.wizards/src/raven/sqdev/wizards/SQDevBaseNewProjectWizard.java rename to plugin/Raven.SQDev.Wizards/src/raven/sqdev/wizards/SQDevBaseNewProjectWizard.java diff --git a/plugin/raven.sqdev.wizards/src/raven/sqdev/wizards/activator/Activator.java b/plugin/Raven.SQDev.Wizards/src/raven/sqdev/wizards/activator/Activator.java similarity index 100% rename from plugin/raven.sqdev.wizards/src/raven/sqdev/wizards/activator/Activator.java rename to plugin/Raven.SQDev.Wizards/src/raven/sqdev/wizards/activator/Activator.java diff --git a/plugin/raven.sqdev.wizards/src/raven/sqdev/wizards/exceptions/FailedAtCreatingFileException.java b/plugin/Raven.SQDev.Wizards/src/raven/sqdev/wizards/exceptions/FailedAtCreatingFileException.java similarity index 100% rename from plugin/raven.sqdev.wizards/src/raven/sqdev/wizards/exceptions/FailedAtCreatingFileException.java rename to plugin/Raven.SQDev.Wizards/src/raven/sqdev/wizards/exceptions/FailedAtCreatingFileException.java diff --git a/plugin/raven.sqdev.wizards/src/raven/sqdev/wizards/export/SQDevExportWizard.java b/plugin/Raven.SQDev.Wizards/src/raven/sqdev/wizards/export/SQDevExportWizard.java similarity index 100% rename from plugin/raven.sqdev.wizards/src/raven/sqdev/wizards/export/SQDevExportWizard.java rename to plugin/Raven.SQDev.Wizards/src/raven/sqdev/wizards/export/SQDevExportWizard.java diff --git a/plugin/raven.sqdev.wizards/src/raven/sqdev/wizards/export/SQDevExportWizardPage.java b/plugin/Raven.SQDev.Wizards/src/raven/sqdev/wizards/export/SQDevExportWizardPage.java similarity index 100% rename from plugin/raven.sqdev.wizards/src/raven/sqdev/wizards/export/SQDevExportWizardPage.java rename to plugin/Raven.SQDev.Wizards/src/raven/sqdev/wizards/export/SQDevExportWizardPage.java diff --git a/plugin/raven.sqdev.wizards/src/raven/sqdev/wizards/importWizard/SQDevImportWizard.java b/plugin/Raven.SQDev.Wizards/src/raven/sqdev/wizards/importWizard/SQDevImportWizard.java similarity index 100% rename from plugin/raven.sqdev.wizards/src/raven/sqdev/wizards/importWizard/SQDevImportWizard.java rename to plugin/Raven.SQDev.Wizards/src/raven/sqdev/wizards/importWizard/SQDevImportWizard.java diff --git a/plugin/raven.sqdev.wizards/src/raven/sqdev/wizards/importWizard/SQDevImportWizardPage.java b/plugin/Raven.SQDev.Wizards/src/raven/sqdev/wizards/importWizard/SQDevImportWizardPage.java similarity index 100% rename from plugin/raven.sqdev.wizards/src/raven/sqdev/wizards/importWizard/SQDevImportWizardPage.java rename to plugin/Raven.SQDev.Wizards/src/raven/sqdev/wizards/importWizard/SQDevImportWizardPage.java diff --git a/plugin/raven.sqdev.wizards/src/raven/sqdev/wizards/sqdevProject/SQDevProjectWizard.java b/plugin/Raven.SQDev.Wizards/src/raven/sqdev/wizards/sqdevProject/SQDevProjectWizard.java similarity index 100% rename from plugin/raven.sqdev.wizards/src/raven/sqdev/wizards/sqdevProject/SQDevProjectWizard.java rename to plugin/Raven.SQDev.Wizards/src/raven/sqdev/wizards/sqdevProject/SQDevProjectWizard.java diff --git a/plugin/raven.sqdev.wizards/src/raven/sqdev/wizards/sqdevProject/SQDevProjectWizardPage.java b/plugin/Raven.SQDev.Wizards/src/raven/sqdev/wizards/sqdevProject/SQDevProjectWizardPage.java similarity index 100% rename from plugin/raven.sqdev.wizards/src/raven/sqdev/wizards/sqdevProject/SQDevProjectWizardPage.java rename to plugin/Raven.SQDev.Wizards/src/raven/sqdev/wizards/sqdevProject/SQDevProjectWizardPage.java diff --git a/plugin/raven.sqdev.wizards/src/raven/sqdev/wizards/sqfNewFileWizard/SqfNewFileWizard.java b/plugin/Raven.SQDev.Wizards/src/raven/sqdev/wizards/sqfNewFileWizard/SqfNewFileWizard.java similarity index 100% rename from plugin/raven.sqdev.wizards/src/raven/sqdev/wizards/sqfNewFileWizard/SqfNewFileWizard.java rename to plugin/Raven.SQDev.Wizards/src/raven/sqdev/wizards/sqfNewFileWizard/SqfNewFileWizard.java diff --git a/plugin/raven.sqdev.wizards/src/raven/sqdev/wizards/sqfNewFileWizard/SqfNewFileWizardPage.java b/plugin/Raven.SQDev.Wizards/src/raven/sqdev/wizards/sqfNewFileWizard/SqfNewFileWizardPage.java similarity index 100% rename from plugin/raven.sqdev.wizards/src/raven/sqdev/wizards/sqfNewFileWizard/SqfNewFileWizardPage.java rename to plugin/Raven.SQDev.Wizards/src/raven/sqdev/wizards/sqfNewFileWizard/SqfNewFileWizardPage.java diff --git a/plugin/raven.sqdev.wizards/src/raven/sqdev/wizards/stringtable/StringTableWizard.java b/plugin/Raven.SQDev.Wizards/src/raven/sqdev/wizards/stringtable/StringTableWizard.java similarity index 100% rename from plugin/raven.sqdev.wizards/src/raven/sqdev/wizards/stringtable/StringTableWizard.java rename to plugin/Raven.SQDev.Wizards/src/raven/sqdev/wizards/stringtable/StringTableWizard.java diff --git a/plugin/raven.sqdev.wizards/src/raven/sqdev/wizards/stringtable/StringTableWizardPage.java b/plugin/Raven.SQDev.Wizards/src/raven/sqdev/wizards/stringtable/StringTableWizardPage.java similarity index 100% rename from plugin/raven.sqdev.wizards/src/raven/sqdev/wizards/stringtable/StringTableWizardPage.java rename to plugin/Raven.SQDev.Wizards/src/raven/sqdev/wizards/stringtable/StringTableWizardPage.java diff --git a/plugin/Raven.SQDev/feature.xml b/plugin/Raven.SQDev/feature.xml index 65831c78..b994ecfd 100644 --- a/plugin/Raven.SQDev/feature.xml +++ b/plugin/Raven.SQDev/feature.xml @@ -2,7 +2,7 @@ @@ -88,14 +88,14 @@ POSSIBILITY OF SUCH DAMAGE. id="raven.sqdev.editors.sqfeditor" download-size="0" install-size="0" - version="0.7.2" + version="0.7.4.stable" unpack="false"/> diff --git a/plugin/raven.sqdev.wizards/.classpath b/plugin/RavenSQDev.Preferences/.classpath similarity index 100% rename from plugin/raven.sqdev.wizards/.classpath rename to plugin/RavenSQDev.Preferences/.classpath diff --git a/plugin/raven.sqdev.preferences/.project b/plugin/RavenSQDev.Preferences/.project similarity index 100% rename from plugin/raven.sqdev.preferences/.project rename to plugin/RavenSQDev.Preferences/.project diff --git a/plugin/raven.sqdev.wizards/.settings/org.eclipse.jdt.core.prefs b/plugin/RavenSQDev.Preferences/.settings/org.eclipse.jdt.core.prefs similarity index 100% rename from plugin/raven.sqdev.wizards/.settings/org.eclipse.jdt.core.prefs rename to plugin/RavenSQDev.Preferences/.settings/org.eclipse.jdt.core.prefs diff --git a/plugin/raven.sqdev.preferences/META-INF/MANIFEST.MF b/plugin/RavenSQDev.Preferences/META-INF/MANIFEST.MF similarity index 98% rename from plugin/raven.sqdev.preferences/META-INF/MANIFEST.MF rename to plugin/RavenSQDev.Preferences/META-INF/MANIFEST.MF index b9125047..f3502095 100644 --- a/plugin/raven.sqdev.preferences/META-INF/MANIFEST.MF +++ b/plugin/RavenSQDev.Preferences/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: Preferences Bundle-SymbolicName: raven.sqdev.preferences;singleton:=true -Bundle-Version: 0.5.4 +Bundle-Version: 0.5.5 Bundle-Activator: raven.sqdev.preferences.activator.Activator Bundle-Vendor: Raven Require-Bundle: org.eclipse.ui, diff --git a/plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/activator/Activator.class b/plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/activator/Activator.class similarity index 100% rename from plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/activator/Activator.class rename to plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/activator/Activator.class diff --git a/plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/initializer/SQDevPreferenceInitializer.class b/plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/initializer/SQDevPreferenceInitializer.class similarity index 100% rename from plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/initializer/SQDevPreferenceInitializer.class rename to plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/initializer/SQDevPreferenceInitializer.class diff --git a/plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/pages/EStatus.class b/plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/pages/EStatus.class similarity index 100% rename from plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/pages/EStatus.class rename to plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/pages/EStatus.class diff --git a/plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/pages/ISQDevPreferencePage.class b/plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/pages/ISQDevPreferencePage.class similarity index 100% rename from plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/pages/ISQDevPreferencePage.class rename to plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/pages/ISQDevPreferencePage.class diff --git a/plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/pages/SQDevEditorPreferencePage.class b/plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/pages/SQDevEditorPreferencePage.class similarity index 100% rename from plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/pages/SQDevEditorPreferencePage.class rename to plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/pages/SQDevEditorPreferencePage.class diff --git a/plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/pages/SQDevGeneralPreferencePage$1.class b/plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/pages/SQDevGeneralPreferencePage$1.class new file mode 100644 index 00000000..f6e596b0 Binary files /dev/null and b/plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/pages/SQDevGeneralPreferencePage$1.class differ diff --git a/plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/pages/SQDevGeneralPreferencePage.class b/plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/pages/SQDevGeneralPreferencePage.class similarity index 77% rename from plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/pages/SQDevGeneralPreferencePage.class rename to plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/pages/SQDevGeneralPreferencePage.class index 090c6fe2..62449a16 100644 Binary files a/plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/pages/SQDevGeneralPreferencePage.class and b/plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/pages/SQDevGeneralPreferencePage.class differ diff --git a/plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/pages/SQDevLinkingPreferencePage.class b/plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/pages/SQDevLinkingPreferencePage.class similarity index 100% rename from plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/pages/SQDevLinkingPreferencePage.class rename to plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/pages/SQDevLinkingPreferencePage.class diff --git a/plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/pages/SQDevMiscPreferencePage$1.class b/plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/pages/SQDevMiscPreferencePage$1.class similarity index 100% rename from plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/pages/SQDevMiscPreferencePage$1.class rename to plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/pages/SQDevMiscPreferencePage$1.class diff --git a/plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/pages/SQDevMiscPreferencePage$2.class b/plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/pages/SQDevMiscPreferencePage$2.class similarity index 100% rename from plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/pages/SQDevMiscPreferencePage$2.class rename to plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/pages/SQDevMiscPreferencePage$2.class diff --git a/plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/pages/SQDevMiscPreferencePage$3$1.class b/plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/pages/SQDevMiscPreferencePage$3$1.class similarity index 100% rename from plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/pages/SQDevMiscPreferencePage$3$1.class rename to plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/pages/SQDevMiscPreferencePage$3$1.class diff --git a/plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/pages/SQDevMiscPreferencePage$3.class b/plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/pages/SQDevMiscPreferencePage$3.class similarity index 100% rename from plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/pages/SQDevMiscPreferencePage$3.class rename to plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/pages/SQDevMiscPreferencePage$3.class diff --git a/plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/pages/SQDevMiscPreferencePage.class b/plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/pages/SQDevMiscPreferencePage.class similarity index 100% rename from plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/pages/SQDevMiscPreferencePage.class rename to plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/pages/SQDevMiscPreferencePage.class diff --git a/plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/pages/SQDevPreferencePage.class b/plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/pages/SQDevPreferencePage.class similarity index 100% rename from plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/pages/SQDevPreferencePage.class rename to plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/pages/SQDevPreferencePage.class diff --git a/plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/pages/SQDevViewsPreferencePage.class b/plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/pages/SQDevViewsPreferencePage.class similarity index 100% rename from plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/pages/SQDevViewsPreferencePage.class rename to plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/pages/SQDevViewsPreferencePage.class diff --git a/plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/AbstractSQDevPreferenceEditor.class b/plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/AbstractSQDevPreferenceEditor.class similarity index 100% rename from plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/AbstractSQDevPreferenceEditor.class rename to plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/AbstractSQDevPreferenceEditor.class diff --git a/plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/BooleanSQDevPreferenceEditor$1.class b/plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/BooleanSQDevPreferenceEditor$1.class similarity index 100% rename from plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/BooleanSQDevPreferenceEditor$1.class rename to plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/BooleanSQDevPreferenceEditor$1.class diff --git a/plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/BooleanSQDevPreferenceEditor.class b/plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/BooleanSQDevPreferenceEditor.class similarity index 100% rename from plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/BooleanSQDevPreferenceEditor.class rename to plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/BooleanSQDevPreferenceEditor.class diff --git a/plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/ColorSQDevPreferenceEditor$1.class b/plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/ColorSQDevPreferenceEditor$1.class similarity index 100% rename from plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/ColorSQDevPreferenceEditor$1.class rename to plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/ColorSQDevPreferenceEditor$1.class diff --git a/plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/ColorSQDevPreferenceEditor.class b/plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/ColorSQDevPreferenceEditor.class similarity index 100% rename from plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/ColorSQDevPreferenceEditor.class rename to plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/ColorSQDevPreferenceEditor.class diff --git a/plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/ComboSQDevPreferenceEditor$1.class b/plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/ComboSQDevPreferenceEditor$1.class similarity index 100% rename from plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/ComboSQDevPreferenceEditor$1.class rename to plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/ComboSQDevPreferenceEditor$1.class diff --git a/plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/ComboSQDevPreferenceEditor.class b/plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/ComboSQDevPreferenceEditor.class similarity index 100% rename from plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/ComboSQDevPreferenceEditor.class rename to plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/ComboSQDevPreferenceEditor.class diff --git a/plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/DirectorySQDevPreferenceEditor$1.class b/plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/DirectorySQDevPreferenceEditor$1.class similarity index 100% rename from plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/DirectorySQDevPreferenceEditor$1.class rename to plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/DirectorySQDevPreferenceEditor$1.class diff --git a/plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/DirectorySQDevPreferenceEditor$2.class b/plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/DirectorySQDevPreferenceEditor$2.class similarity index 100% rename from plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/DirectorySQDevPreferenceEditor$2.class rename to plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/DirectorySQDevPreferenceEditor$2.class diff --git a/plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/DirectorySQDevPreferenceEditor.class b/plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/DirectorySQDevPreferenceEditor.class similarity index 100% rename from plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/DirectorySQDevPreferenceEditor.class rename to plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/DirectorySQDevPreferenceEditor.class diff --git a/plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/ISQDevPreferenceEditor.class b/plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/ISQDevPreferenceEditor.class similarity index 100% rename from plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/ISQDevPreferenceEditor.class rename to plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/ISQDevPreferenceEditor.class diff --git a/plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/IntegerSQDevPreferenceEditor$1.class b/plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/IntegerSQDevPreferenceEditor$1.class similarity index 100% rename from plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/IntegerSQDevPreferenceEditor$1.class rename to plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/IntegerSQDevPreferenceEditor$1.class diff --git a/plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/IntegerSQDevPreferenceEditor.class b/plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/IntegerSQDevPreferenceEditor.class similarity index 100% rename from plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/IntegerSQDevPreferenceEditor.class rename to plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/IntegerSQDevPreferenceEditor.class diff --git a/plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/MultiStringPreferenceEditor$1.class b/plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/MultiStringPreferenceEditor$1.class similarity index 100% rename from plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/MultiStringPreferenceEditor$1.class rename to plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/MultiStringPreferenceEditor$1.class diff --git a/plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/MultiStringPreferenceEditor$1ContainerUpdater.class b/plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/MultiStringPreferenceEditor$1ContainerUpdater.class similarity index 100% rename from plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/MultiStringPreferenceEditor$1ContainerUpdater.class rename to plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/MultiStringPreferenceEditor$1ContainerUpdater.class diff --git a/plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/MultiStringPreferenceEditor$2.class b/plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/MultiStringPreferenceEditor$2.class similarity index 100% rename from plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/MultiStringPreferenceEditor$2.class rename to plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/MultiStringPreferenceEditor$2.class diff --git a/plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/MultiStringPreferenceEditor$3$1.class b/plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/MultiStringPreferenceEditor$3$1.class similarity index 100% rename from plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/MultiStringPreferenceEditor$3$1.class rename to plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/MultiStringPreferenceEditor$3$1.class diff --git a/plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/MultiStringPreferenceEditor$3.class b/plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/MultiStringPreferenceEditor$3.class similarity index 100% rename from plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/MultiStringPreferenceEditor$3.class rename to plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/MultiStringPreferenceEditor$3.class diff --git a/plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/MultiStringPreferenceEditor$4.class b/plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/MultiStringPreferenceEditor$4.class similarity index 100% rename from plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/MultiStringPreferenceEditor$4.class rename to plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/MultiStringPreferenceEditor$4.class diff --git a/plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/MultiStringPreferenceEditor$5.class b/plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/MultiStringPreferenceEditor$5.class similarity index 100% rename from plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/MultiStringPreferenceEditor$5.class rename to plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/MultiStringPreferenceEditor$5.class diff --git a/plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/MultiStringPreferenceEditor$6.class b/plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/MultiStringPreferenceEditor$6.class similarity index 100% rename from plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/MultiStringPreferenceEditor$6.class rename to plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/MultiStringPreferenceEditor$6.class diff --git a/plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/MultiStringPreferenceEditor.class b/plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/MultiStringPreferenceEditor.class similarity index 100% rename from plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/MultiStringPreferenceEditor.class rename to plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/MultiStringPreferenceEditor.class diff --git a/plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/ValueSQDevPreferenceEditor$1.class b/plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/ValueSQDevPreferenceEditor$1.class similarity index 100% rename from plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/ValueSQDevPreferenceEditor$1.class rename to plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/ValueSQDevPreferenceEditor$1.class diff --git a/plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/ValueSQDevPreferenceEditor.class b/plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/ValueSQDevPreferenceEditor.class similarity index 100% rename from plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/preferenceEditors/ValueSQDevPreferenceEditor.class rename to plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/preferenceEditors/ValueSQDevPreferenceEditor.class diff --git a/plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/util/EStatus.class b/plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/util/EStatus.class similarity index 100% rename from plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/util/EStatus.class rename to plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/util/EStatus.class diff --git a/plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/util/ISQDevPreferenceEditorListener.class b/plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/util/ISQDevPreferenceEditorListener.class similarity index 100% rename from plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/util/ISQDevPreferenceEditorListener.class rename to plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/util/ISQDevPreferenceEditorListener.class diff --git a/plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/util/SQDevChangeEvent.class b/plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/util/SQDevChangeEvent.class similarity index 100% rename from plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/util/SQDevChangeEvent.class rename to plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/util/SQDevChangeEvent.class diff --git a/plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/util/SQDevInvalidPreferenceException.class b/plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/util/SQDevInvalidPreferenceException.class similarity index 100% rename from plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/util/SQDevInvalidPreferenceException.class rename to plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/util/SQDevInvalidPreferenceException.class diff --git a/plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/util/SQDevPreferenceComposite.class b/plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/util/SQDevPreferenceComposite.class similarity index 100% rename from plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/util/SQDevPreferenceComposite.class rename to plugin/RavenSQDev.Preferences/bin/raven/sqdev/preferences/util/SQDevPreferenceComposite.class diff --git a/plugin/raven.sqdev.wizards/build.properties b/plugin/RavenSQDev.Preferences/build.properties similarity index 100% rename from plugin/raven.sqdev.wizards/build.properties rename to plugin/RavenSQDev.Preferences/build.properties diff --git a/plugin/raven.sqdev.preferences/plugin.xml b/plugin/RavenSQDev.Preferences/plugin.xml similarity index 100% rename from plugin/raven.sqdev.preferences/plugin.xml rename to plugin/RavenSQDev.Preferences/plugin.xml diff --git a/plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/activator/Activator.java b/plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/activator/Activator.java similarity index 100% rename from plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/activator/Activator.java rename to plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/activator/Activator.java diff --git a/plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/initializer/SQDevPreferenceInitializer.java b/plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/initializer/SQDevPreferenceInitializer.java similarity index 100% rename from plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/initializer/SQDevPreferenceInitializer.java rename to plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/initializer/SQDevPreferenceInitializer.java diff --git a/plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/pages/EStatus.java b/plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/pages/EStatus.java similarity index 100% rename from plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/pages/EStatus.java rename to plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/pages/EStatus.java diff --git a/plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/pages/ISQDevPreferencePage.java b/plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/pages/ISQDevPreferencePage.java similarity index 100% rename from plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/pages/ISQDevPreferencePage.java rename to plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/pages/ISQDevPreferencePage.java diff --git a/plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/pages/SQDevEditorPreferencePage.java b/plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/pages/SQDevEditorPreferencePage.java similarity index 100% rename from plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/pages/SQDevEditorPreferencePage.java rename to plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/pages/SQDevEditorPreferencePage.java diff --git a/plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/pages/SQDevGeneralPreferencePage.java b/plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/pages/SQDevGeneralPreferencePage.java similarity index 55% rename from plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/pages/SQDevGeneralPreferencePage.java rename to plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/pages/SQDevGeneralPreferencePage.java index 40fb2934..373269ba 100644 --- a/plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/pages/SQDevGeneralPreferencePage.java +++ b/plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/pages/SQDevGeneralPreferencePage.java @@ -1,9 +1,9 @@ package raven.sqdev.preferences.pages; - import java.io.File; import java.io.IOException; +import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Event; @@ -12,7 +12,8 @@ import org.eclipse.ui.IWorkbench; import raven.sqdev.constants.SQDevPreferenceConstants; -import raven.sqdev.preferences.initializer.SQDevPreferenceInitializer; +import raven.sqdev.misc.SQDevInfobox; +import raven.sqdev.misc.SQDevPreferenceUtil; import raven.sqdev.preferences.preferenceEditors.BooleanSQDevPreferenceEditor; import raven.sqdev.preferences.preferenceEditors.ComboSQDevPreferenceEditor; import raven.sqdev.preferences.preferenceEditors.DirectorySQDevPreferenceEditor; @@ -25,25 +26,23 @@ * */ public class SQDevGeneralPreferencePage extends SQDevPreferencePage { - + public SQDevGeneralPreferencePage() { super(); } - + @Override public void init(IWorkbench workbench) { setDescription("General SQDev preferences"); - + // preferences concerning the ArmA directories Group armaDirs = createGroup("ArmA directories"); - - createDescription(armaDirs, - "Here the location of your ArmA folders are specified"); - - + + createDescription(armaDirs, "Here the location of your ArmA folders are specified"); + String exeName; String docTooltip; - + if (System.getProperty("os.name").toLowerCase().contains("windows")) { exeName = "arma3.exe"; docTooltip = "The path to the directory that contains the \"Arma 3\" (and \"Arma 3 - " @@ -54,109 +53,114 @@ public void init(IWorkbench workbench) { + "Other profiles\") directory (Normally this is \"$HOME$/.local/share/" + "bohemiainteractive/arma3/GameDocuments/\""; } - + DirectorySQDevPreferenceEditor dirEditor = new DirectorySQDevPreferenceEditor( - SQDevPreferenceConstants.SQDEV_INFO_ARMA_MAIN_DIRECTORY, - "&Program:", "The path to the directory in which your " - + exeName + " is located", - armaDirs); + SQDevPreferenceConstants.SQDEV_INFO_ARMA_MAIN_DIRECTORY, "&Program:", + "The path to the directory in which your " + exeName + " is located", armaDirs); dirEditor.addFileToMatch(exeName); addPreferenceEditor(dirEditor); - + + final String armaFolder = "Arma 3"; DirectorySQDevPreferenceEditor docDirEditor = new DirectorySQDevPreferenceEditor( - SQDevPreferenceConstants.SQDEV_INFO_ARMA_DOCUMENTS_DIRECTORY, - "&Documents:", docTooltip, armaDirs); - docDirEditor.addFolderToMatch("Arma 3"); + SQDevPreferenceConstants.SQDEV_INFO_ARMA_DOCUMENTS_DIRECTORY, "&Documents:", docTooltip, armaDirs); + docDirEditor.addFolderToMatch(armaFolder); addPreferenceEditor(docDirEditor); - - addPreferenceEditor(new DirectorySQDevPreferenceEditor( - SQDevPreferenceConstants.SQDEV_VIEWS_RPTVIEWER_RPT_PATH, - "&RPTs:", - "The path to the folder ArmA is storing it's RPTs (Affects the same " + + addPreferenceEditor(new DirectorySQDevPreferenceEditor(SQDevPreferenceConstants.SQDEV_VIEWS_RPTVIEWER_RPT_PATH, + "&RPTs:", "The path to the folder ArmA is storing it's RPTs (Affects the same " + "preference as the box on the Views page)", armaDirs)); - + // infos Group defaults = createGroup("Defaults"); - - createDescription(defaults, - "Some defaults that will be used by the plugin"); - - addPreferenceEditor(new BooleanSQDevPreferenceEditor( - SQDevPreferenceConstants.SQDEV_INFO_DEFAULT_AUTOEXPORT, - "&Default auto-export:", - "Indicating whether auto-export is enabled by default " + + createDescription(defaults, "Some defaults that will be used by the plugin"); + + addPreferenceEditor(new BooleanSQDevPreferenceEditor(SQDevPreferenceConstants.SQDEV_INFO_DEFAULT_AUTOEXPORT, + "&Default auto-export:", "Indicating whether auto-export is enabled by default " + "(can be overwritten by each project individually)", defaults)); - - addPreferenceEditor(new ComboSQDevPreferenceEditor( - SQDevPreferenceConstants.SQDEV_INFO_DEFAULT_TERRAIN, + + addPreferenceEditor(new ComboSQDevPreferenceEditor(SQDevPreferenceConstants.SQDEV_INFO_DEFAULT_TERRAIN, "&Default terrain:", Util.getTerrains(), true, "Defines the default terrain newly created projects will be located on per" + " default (Can be overwritten by each project individually)", defaults)); - - addPreferenceEditor(new ComboSQDevPreferenceEditor( - SQDevPreferenceConstants.SQDEV_INFO_DEFAULT_PROFILE, - "&Default profile:", - Util.getProfiles() - .toArray(new String[Util.getProfiles().size()]), - false, + + addPreferenceEditor(new ComboSQDevPreferenceEditor(SQDevPreferenceConstants.SQDEV_INFO_DEFAULT_PROFILE, + "&Default profile:", Util.getProfiles().toArray(new String[Util.getProfiles().size()]), false, "Defines the default profile newly created projects will be associated with" + " per default (Can be overwritten by each project individually)", defaults)); - + // compability Group compability = createGroup("Various compability options/actions"); createDescription(compability, "Preferences and/or actions connected to any kind of compability related issues"); - + Button createDummyFilesButton = new Button(compability, SWT.PUSH); createDummyFilesButton.setText("Create dummy ArmA-infrastructure"); - createDummyFilesButton.setToolTipText( - "Creates the folder infrastructure ArmA would create " - + "(and is needed for this plugin to work), this option is intended for machines" - + " that don't have ArmA installed!"); - + createDummyFilesButton.setToolTipText("Creates the folder infrastructure ArmA would create " + + "(and is needed for this plugin to work), this option is intended for machines" + + " that don't have ArmA installed!"); + createDummyFilesButton.addListener(SWT.Selection, new Listener() { - + @Override public void handleEvent(Event event) { // create dummy dirs - File main = new File( - SQDevPreferenceInitializer.locateArmaMainDirectory()); - File documents = new File(SQDevPreferenceInitializer - .locateArmaDocumentsDirectory()); - File rpt = new File(SQDevPreferenceInitializer.locateRPT()); - + final String base = System.getProperty("user.home") + File.separator + ".ArmaDummyFiles"; + + final File baseDir = new File(base); + + if (!baseDir.exists()) { + baseDir.mkdir(); + } + + final File main = new File(base + File.separator + "Base"); + final File documents = new File(base + File.separator + "Documents"); + final File armaDir = new File(documents, armaFolder); + final File rpt = new File(base + File.separator + "RPT"); + if (!main.exists()) { main.mkdirs(); } - - File exe = new File(main, exeName); - + + final File exe = new File(main, exeName); + if (!exe.exists()) { try { exe.createNewFile(); } catch (IOException e) { e.printStackTrace(); + SQDevInfobox info = new SQDevInfobox("Couldn't create dummy exe", e); + info.open(false); } } - + if (!documents.exists()) { documents.mkdirs(); } - + if (!armaDir.exists()) { + armaDir.mkdir(); + } + if (!rpt.exists()) { rpt.mkdirs(); } - + + IPreferenceStore prefStore = SQDevPreferenceUtil.getPreferenceStore(); // TODO: is Null + // disbale auto-export - getPreferenceStore().setValue( - SQDevPreferenceConstants.SQDEV_INFO_DEFAULT_AUTOEXPORT, - false); + prefStore.setValue(SQDevPreferenceConstants.SQDEV_INFO_DEFAULT_AUTOEXPORT, false); + + // load the dummy-dirs into the preferences + prefStore.setValue(SQDevPreferenceConstants.SQDEV_INFO_ARMA_MAIN_DIRECTORY, main.getAbsolutePath()); + prefStore.setValue(SQDevPreferenceConstants.SQDEV_INFO_ARMA_DOCUMENTS_DIRECTORY, + documents.getAbsolutePath()); + prefStore.setValue(SQDevPreferenceConstants.SQDEV_VIEWS_RPTVIEWER_RPT_PATH, rpt.getAbsolutePath()); } }); - + } } diff --git a/plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/pages/SQDevLinkingPreferencePage.java b/plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/pages/SQDevLinkingPreferencePage.java similarity index 100% rename from plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/pages/SQDevLinkingPreferencePage.java rename to plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/pages/SQDevLinkingPreferencePage.java diff --git a/plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/pages/SQDevMiscPreferencePage.java b/plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/pages/SQDevMiscPreferencePage.java similarity index 100% rename from plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/pages/SQDevMiscPreferencePage.java rename to plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/pages/SQDevMiscPreferencePage.java diff --git a/plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/pages/SQDevPreferencePage.java b/plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/pages/SQDevPreferencePage.java similarity index 100% rename from plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/pages/SQDevPreferencePage.java rename to plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/pages/SQDevPreferencePage.java diff --git a/plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/pages/SQDevViewsPreferencePage.java b/plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/pages/SQDevViewsPreferencePage.java similarity index 100% rename from plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/pages/SQDevViewsPreferencePage.java rename to plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/pages/SQDevViewsPreferencePage.java diff --git a/plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/preferenceEditors/AbstractSQDevPreferenceEditor.java b/plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/preferenceEditors/AbstractSQDevPreferenceEditor.java similarity index 100% rename from plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/preferenceEditors/AbstractSQDevPreferenceEditor.java rename to plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/preferenceEditors/AbstractSQDevPreferenceEditor.java diff --git a/plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/preferenceEditors/BooleanSQDevPreferenceEditor.java b/plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/preferenceEditors/BooleanSQDevPreferenceEditor.java similarity index 100% rename from plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/preferenceEditors/BooleanSQDevPreferenceEditor.java rename to plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/preferenceEditors/BooleanSQDevPreferenceEditor.java diff --git a/plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/preferenceEditors/ColorSQDevPreferenceEditor.java b/plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/preferenceEditors/ColorSQDevPreferenceEditor.java similarity index 100% rename from plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/preferenceEditors/ColorSQDevPreferenceEditor.java rename to plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/preferenceEditors/ColorSQDevPreferenceEditor.java diff --git a/plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/preferenceEditors/ComboSQDevPreferenceEditor.java b/plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/preferenceEditors/ComboSQDevPreferenceEditor.java similarity index 100% rename from plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/preferenceEditors/ComboSQDevPreferenceEditor.java rename to plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/preferenceEditors/ComboSQDevPreferenceEditor.java diff --git a/plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/preferenceEditors/DirectorySQDevPreferenceEditor.java b/plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/preferenceEditors/DirectorySQDevPreferenceEditor.java similarity index 100% rename from plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/preferenceEditors/DirectorySQDevPreferenceEditor.java rename to plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/preferenceEditors/DirectorySQDevPreferenceEditor.java diff --git a/plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/preferenceEditors/ISQDevPreferenceEditor.java b/plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/preferenceEditors/ISQDevPreferenceEditor.java similarity index 100% rename from plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/preferenceEditors/ISQDevPreferenceEditor.java rename to plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/preferenceEditors/ISQDevPreferenceEditor.java diff --git a/plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/preferenceEditors/IntegerSQDevPreferenceEditor.java b/plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/preferenceEditors/IntegerSQDevPreferenceEditor.java similarity index 100% rename from plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/preferenceEditors/IntegerSQDevPreferenceEditor.java rename to plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/preferenceEditors/IntegerSQDevPreferenceEditor.java diff --git a/plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/preferenceEditors/MultiStringPreferenceEditor.java b/plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/preferenceEditors/MultiStringPreferenceEditor.java similarity index 100% rename from plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/preferenceEditors/MultiStringPreferenceEditor.java rename to plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/preferenceEditors/MultiStringPreferenceEditor.java diff --git a/plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/preferenceEditors/ValueSQDevPreferenceEditor.java b/plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/preferenceEditors/ValueSQDevPreferenceEditor.java similarity index 100% rename from plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/preferenceEditors/ValueSQDevPreferenceEditor.java rename to plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/preferenceEditors/ValueSQDevPreferenceEditor.java diff --git a/plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/util/EStatus.java b/plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/util/EStatus.java similarity index 100% rename from plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/util/EStatus.java rename to plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/util/EStatus.java diff --git a/plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/util/ISQDevPreferenceEditorListener.java b/plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/util/ISQDevPreferenceEditorListener.java similarity index 100% rename from plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/util/ISQDevPreferenceEditorListener.java rename to plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/util/ISQDevPreferenceEditorListener.java diff --git a/plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/util/SQDevChangeEvent.java b/plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/util/SQDevChangeEvent.java similarity index 100% rename from plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/util/SQDevChangeEvent.java rename to plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/util/SQDevChangeEvent.java diff --git a/plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/util/SQDevInvalidPreferenceException.java b/plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/util/SQDevInvalidPreferenceException.java similarity index 100% rename from plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/util/SQDevInvalidPreferenceException.java rename to plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/util/SQDevInvalidPreferenceException.java diff --git a/plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/util/SQDevPreferenceComposite.java b/plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/util/SQDevPreferenceComposite.java similarity index 100% rename from plugin/raven.sqdev.preferences/src/raven/sqdev/preferences/util/SQDevPreferenceComposite.java rename to plugin/RavenSQDev.Preferences/src/raven/sqdev/preferences/util/SQDevPreferenceComposite.java diff --git a/plugin/SQDev/SQDev_0.7.4.zip b/plugin/SQDev/SQDev_0.7.4.zip new file mode 100644 index 00000000..786e2b50 Binary files /dev/null and b/plugin/SQDev/SQDev_0.7.4.zip differ diff --git a/plugin/SQDev/site.xml b/plugin/SQDev/site.xml index b98a4949..603f6fd5 100644 --- a/plugin/SQDev/site.xml +++ b/plugin/SQDev/site.xml @@ -1,6 +1,6 @@ - + diff --git a/plugin/raven.sqdev.editors.sqfeditor/bin/raven/sqdev/editors/sqfeditor/SQF_Editor.class b/plugin/raven.sqdev.editors.sqfeditor/bin/raven/sqdev/editors/sqfeditor/SQF_Editor.class deleted file mode 100644 index 9125cd45..00000000 Binary files a/plugin/raven.sqdev.editors.sqfeditor/bin/raven/sqdev/editors/sqfeditor/SQF_Editor.class and /dev/null differ diff --git a/plugin/raven.sqdev.editors.sqfeditor/bin/raven/sqdev/editors/sqfeditor/testing/SQFParserTest.class b/plugin/raven.sqdev.editors.sqfeditor/bin/raven/sqdev/editors/sqfeditor/testing/SQFParserTest.class deleted file mode 100644 index beb28513..00000000 Binary files a/plugin/raven.sqdev.editors.sqfeditor/bin/raven/sqdev/editors/sqfeditor/testing/SQFParserTest.class and /dev/null differ diff --git a/plugin/raven.sqdev.editors.sqfeditor/bin/raven/sqdev/editors/sqfeditor/testing/SQF_TestEditor.class b/plugin/raven.sqdev.editors.sqfeditor/bin/raven/sqdev/editors/sqfeditor/testing/SQF_TestEditor.class deleted file mode 100644 index 77866d57..00000000 Binary files a/plugin/raven.sqdev.editors.sqfeditor/bin/raven/sqdev/editors/sqfeditor/testing/SQF_TestEditor.class and /dev/null differ diff --git a/plugin/raven.sqdev.editors.sqfeditor/bin/raven/sqdev/editors/sqfeditor/testing/TestMarkerAcceptor.class b/plugin/raven.sqdev.editors.sqfeditor/bin/raven/sqdev/editors/sqfeditor/testing/TestMarkerAcceptor.class deleted file mode 100644 index fd72b5c8..00000000 Binary files a/plugin/raven.sqdev.editors.sqfeditor/bin/raven/sqdev/editors/sqfeditor/testing/TestMarkerAcceptor.class and /dev/null differ diff --git a/plugin/raven.sqdev.editors.sqfeditor/src/raven/sqdev/editors/sqfeditor/testing/SQFParserTest.java b/plugin/raven.sqdev.editors.sqfeditor/src/raven/sqdev/editors/sqfeditor/testing/SQFParserTest.java deleted file mode 100644 index 977ac36a..00000000 --- a/plugin/raven.sqdev.editors.sqfeditor/src/raven/sqdev/editors/sqfeditor/testing/SQFParserTest.java +++ /dev/null @@ -1,261 +0,0 @@ -package raven.sqdev.editors.sqfeditor.testing; - -import java.io.File; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.antlr.v4.runtime.ANTLRInputStream; -import org.antlr.v4.runtime.BufferedTokenStream; -import org.antlr.v4.runtime.CommonTokenStream; -import org.antlr.v4.runtime.atn.PredictionMode; -import org.antlr.v4.runtime.tree.ParseTree; -import org.antlr.v4.runtime.tree.ParseTreeWalker; -import org.junit.Assert; -import org.junit.BeforeClass; -import org.junit.Test; - -import raven.sqdev.editors.sqfeditor.SQF_Editor; -import raven.sqdev.exceptions.SQDevException; -import raven.sqdev.infoCollection.base.Keyword; -import raven.sqdev.infoCollection.base.KeywordList; -import raven.sqdev.infoCollection.base.SQFCommand; -import raven.sqdev.interfaces.IMarkerSupport; -import raven.sqdev.misc.FileUtil; -import raven.sqdev.misc.Macro; -import raven.sqdev.parser.misc.BasicErrorListener; -import raven.sqdev.parser.sqf.SQFLexer; -import raven.sqdev.parser.sqf.SQFParser; -import raven.sqdev.parser.sqf.SQFValidator; -import raven.sqdev.util.StringUtils; - -public class SQFParserTest { - - private static List binaryCommands; - private static List unaryCommands; - private static List nularCommands; - - @BeforeClass - public static void setUp() { - KeywordList keywordList; - try { - String input = System.getProperty("user.home") - + "/Documents/Eclipse-Workspace/Eclipse.rcp/Raven.SQDev.Util/" - + "resources/sqf/SQFKeywords.txt"; - keywordList = new KeywordList(FileUtil.getContent(new File(input))); - } catch (SQDevException e) { - e.printStackTrace(); - - System.exit(-1); - return; - } - - binaryCommands = new ArrayList(); - unaryCommands = new ArrayList(); - nularCommands = new ArrayList(); - - for (Keyword currentKeyword : keywordList.getKeywords()) { - if (currentKeyword instanceof SQFCommand) { - SQFCommand currentCommand = (SQFCommand) currentKeyword; - - if (currentCommand.isBinaryOperator()) { - binaryCommands.add(currentCommand.getKeyword()); - } - - if (currentCommand.isUnaryOperator()) { - unaryCommands.add(currentCommand.getKeyword()); - } - - if (currentCommand.isNularOperator()) { - nularCommands.add(currentCommand.getKeyword()); - } - } - } - } - - @Test - public void speedTest() throws InterruptedException { - int lines = 100; - - StringBuilder builder = new StringBuilder("{["); - for (int i = 0; i < lines; i++) { - builder.append("{hint \"" + i + "\";},"); - } - builder.setLength(builder.length() - 1); - builder.append("]}"); - String input = builder.toString(); - - double avgTime = 0; - - int loops = 50; - - SQF_TestEditor editor = new SQF_TestEditor(binaryCommands, - unaryCommands, nularCommands, new ArrayList()); - - for (int i = 0; i < loops; i++) { - long time = Calendar.getInstance().getTimeInMillis(); - - Object[] result = parseInput(input, editor.getMacroNames(), false, - editor); - - validateParseTree((ParseTree) result[0], - (BufferedTokenStream) result[1], editor); - - time = Calendar.getInstance().getTimeInMillis() - time; - - System.out.println( - "Speed test: " + time + "ms -- " + (time / lines) + "ms/l"); - - avgTime += (time / (double)loops); - } - - System.out.println("\nAvg. time: " + avgTime + "ms -- " + (avgTime / lines) + "ms/l\n\n"); - - Assert.assertTrue("Time exceeds limit! (" + avgTime + " instead of max " - + (0.5 * lines), avgTime < (0.5 * lines)); - } - - @Test - public void ourAltisScriptTest() throws SQDevException { - String scriptsPath = "/home/robert/Documents/GitHub/OurAltis/OurAltis_Mission.Altis/scripts"; - - List macros = new ArrayList(); - - macros.add(new Macro("FUNC")); - macros.add(new Macro("QFUNC")); - macros.add(new Macro("GVAR")); - macros.add(new Macro("QGVAR")); - macros.add(new Macro("PGVAR")); - macros.add(new Macro("QPGVAR")); - macros.add(new Macro("MGVAR")); - macros.add(new Macro("RGVAR")); - macros.add(new Macro("QRGVAR")); - macros.add(new Macro("QUOTE")); - macros.add(new Macro("FORMAT")); - macros.add(new Macro("CHECK_TRUE")); - macros.add(new Macro("CHECK_FALSE")); - macros.add(new Macro("DEBUG_EXEC")); - macros.add(new Macro("WARNING_LOG")); - macros.add(new Macro("ERROR_LOG")); - macros.add(new Macro("NOTIFICATION_LOG")); - macros.add(new Macro("FORMAT_LOG")); - macros.add(new Macro("COMPILE_LOADOUT")); - macros.add(new Macro("LOADOUT_FUNC")); - macros.add(new Macro("CHECK_DB_RESULT")); - - - for (File currentScript : FileUtil - .getAllSubFiles(new File(scriptsPath))) { - if (currentScript.getName().contains(".sqf") - && !currentScript.getName().equals("fn_workWithRequest.sqf") - && !currentScript.getName().equals("fn_createCamp.sqf") - && !currentScript.getName() - .equals("fn_createVehicles.sqf")) { - - SQF_TestEditor editor = new SQF_TestEditor(binaryCommands, - unaryCommands, nularCommands, macros); - - String input = FileUtil.getContent(currentScript); - int lines = StringUtils.countMatches(input, "\n") + 1; - - long time = Calendar.getInstance().getTimeInMillis(); - - Object[] result = parseInput(input, editor.getMacroNames(), - false, editor); - - long timeDiff = Calendar.getInstance().getTimeInMillis() - time; - System.out.print( - timeDiff + "ms" + " : " + (timeDiff / lines) + "ms/pl"); - - - time = Calendar.getInstance().getTimeInMillis(); - - validateParseTree((ParseTree) result[0], - (BufferedTokenStream) result[1], editor); - - Assert.assertFalse( - "Unexpected errors in file \"" - + currentScript.getAbsolutePath() + "\"!", - editor.containsMarker()); - - timeDiff = Calendar.getInstance().getTimeInMillis() - time; - System.out.print(" -- " + timeDiff + "ms" + " : " - + (timeDiff / lines) + "ms/pl"); - - System.out.println("\t\t - " + currentScript.getAbsolutePath()); - } - } - } - - @Test - public void GeneralTest01() { - String input = "_test = {}; hint str _test;"; - - List macros = new ArrayList(); - - SQF_TestEditor editor = new SQF_TestEditor(binaryCommands, - unaryCommands, nularCommands, macros); - - Object[] result = parseInput(input, new ArrayList(), false, - editor); - - validateParseTree((ParseTree) result[0], - (BufferedTokenStream) result[1], editor); - - Assert.assertFalse("Assumed no markers but got some!", - editor.containsMarker()); - } - - - /** - * Parses the given input with the SQF parser - * - * @param input - * The input for the parser - * @param useLL - * Whether the parser should use the more complex LL algorithm - * instead of the faster SLL - * @param acceptor - * The IMarkerAcceptor to report any errors to - */ - private Object[] parseInput(String input, List macroNames, - boolean useLL, IMarkerSupport acceptor) { - BasicErrorListener listener = new BasicErrorListener(acceptor); - - ANTLRInputStream in = new ANTLRInputStream(input); - - SQFLexer lexer = new SQFLexer(in, binaryCommands, unaryCommands, - macroNames); - lexer.removeErrorListeners(); - lexer.addErrorListener(listener); - - CommonTokenStream stream = new CommonTokenStream(lexer); - - SQFParser parser = new SQFParser(stream); - parser.removeErrorListeners(); - parser.addErrorListener(listener); - - parser.getInterpreter().setPredictionMode( - (useLL) ? PredictionMode.LL : PredictionMode.SLL); - - return new Object[] { parser.start(), stream }; - } - - /** - * Validates the given input - * - * @param tree - * The ParseTree to validate - * @param stream - * The BufferedTokenStream that has been used for parsing - * @param editor - * The editor to interact with. It is recommended to use a - * {@link SQF_TestEditor} for this purpose - */ - private void validateParseTree(ParseTree tree, BufferedTokenStream stream, - SQF_Editor editor) { - ParseTreeWalker walker = new ParseTreeWalker(); - - walker.walk(new SQFValidator(editor, stream), tree); - } -} diff --git a/plugin/raven.sqdev.editors.sqfeditor/src/raven/sqdev/editors/sqfeditor/testing/SQF_TestEditor.java b/plugin/raven.sqdev.editors.sqfeditor/src/raven/sqdev/editors/sqfeditor/testing/SQF_TestEditor.java deleted file mode 100644 index b078fae3..00000000 --- a/plugin/raven.sqdev.editors.sqfeditor/src/raven/sqdev/editors/sqfeditor/testing/SQF_TestEditor.java +++ /dev/null @@ -1,128 +0,0 @@ -package raven.sqdev.editors.sqfeditor.testing; - -import java.util.ArrayList; -import java.util.List; - -import raven.sqdev.editors.MarkerInformation; -import raven.sqdev.editors.sqfeditor.SQF_Editor; -import raven.sqdev.infoCollection.base.Variable; -import raven.sqdev.misc.Macro; - -/** - * A test editor that is used in order to test the SQF parsing - * - * @author Raven - * - */ -public class SQF_TestEditor extends SQF_Editor { - - /** - * A list of all created markers - */ - private List createdMarkers; - - private List binaryKeywords; - private List unaryKeywords; - private List nularKeywords; - - public SQF_TestEditor(List binaryKeywords, - List unaryKeywords, List nularKeywords, - List macros) { - createdMarkers = new ArrayList(); - - this.binaryKeywords = binaryKeywords; - this.unaryKeywords = unaryKeywords; - this.nularKeywords = nularKeywords; - setMacros(macros, false); - } - - @Override - public void createMarker(String type, int offset, int length, - String message, int severity) { - - createdMarkers.add(new MarkerInformation(type, -1, offset, length, - severity, message)); - } - - @Override - public List getBinaryKeywords() { - return binaryKeywords; - } - - @Override - public List getUnaryKeywords() { - return unaryKeywords; - } - - @Override - public List getNularKeywords() { - return nularKeywords; - } - - @Override - public void update(boolean reconfigure) { - // do nothing - } - - /** - * Cheks whether the given local variable has been reported to this editor - * - * @param var - * The Variable to check for - */ - public boolean containsLocalVariable(Variable var) { - return getLocalVariables().contains(var); - } - - /** - * Cheks whether the given global variable has been reported to this editor - * - * @param var - * The Variable to check for - */ - public boolean containsGlobalVariable(Variable var) { - return getGlobalVariables().contains(var); - } - - /** - * Cheks whether the given variable has been reported to this editor - * - * @param var - * The Variable to check for - */ - public boolean containsVariable(Variable var) { - return getLocalVariables().contains(var) - || getGlobalVariables().contains(var); - } - - /** - * Checks whether there are any reported markers - */ - public boolean containsMarker() { - return createdMarkers.size() > 0; - } - - /** - * Checks whether the given marker has been reported to this editor - * - * @param marker - * The marker to check for. NOTE: The line attribute of this - * has to be -1. - */ - public boolean containsMarker(MarkerInformation marker) { - return createdMarkers.contains(marker); - } - - @Override - public boolean setMacros(List macros, boolean update) { - macroNames.clear(); - for (Macro currentMacro : macros) { - macroNames.add(currentMacro.getKeyword()); - } - - this.macros = new ArrayList(macros); - - return true; - } - -} diff --git a/plugin/raven.sqdev.editors.sqfeditor/src/raven/sqdev/editors/sqfeditor/testing/TestMarkerAcceptor.java b/plugin/raven.sqdev.editors.sqfeditor/src/raven/sqdev/editors/sqfeditor/testing/TestMarkerAcceptor.java deleted file mode 100644 index 17b66d82..00000000 --- a/plugin/raven.sqdev.editors.sqfeditor/src/raven/sqdev/editors/sqfeditor/testing/TestMarkerAcceptor.java +++ /dev/null @@ -1,23 +0,0 @@ -package raven.sqdev.editors.sqfeditor.testing; - -import raven.sqdev.interfaces.IMarkerSupport; - -/** - * This object does serve as a sort of "dummy"-marker-acceptor that allows to check whether all expected markers have been reported - * @author Raven - * - */ -public class TestMarkerAcceptor implements IMarkerSupport { - - public TestMarkerAcceptor() { - // TODO Auto-generated constructor stub - } - - @Override - public void createMarker(String type, int offset, int length, - String message, int severity) { - // TODO store - - } - -} diff --git a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableXMLEditor.class b/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableXMLEditor.class deleted file mode 100644 index c4cccdca..00000000 Binary files a/plugin/raven.sqdev.editors/bin/raven/sqdev/editors/stringTableEditor/StringTableXMLEditor.class and /dev/null differ diff --git a/plugin/raven.sqdev.misc/ANTLR/antlr-runtime-4.5.3.jar b/plugin/raven.sqdev.misc/ANTLR/antlr-runtime-4.5.3.jar deleted file mode 100644 index 44353757..00000000 Binary files a/plugin/raven.sqdev.misc/ANTLR/antlr-runtime-4.5.3.jar and /dev/null differ diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/constants/ProblemMessages.class b/plugin/raven.sqdev.misc/bin/raven/sqdev/constants/ProblemMessages.class deleted file mode 100644 index e1cd06c6..00000000 Binary files a/plugin/raven.sqdev.misc/bin/raven/sqdev/constants/ProblemMessages.class and /dev/null differ diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/interfaces/ISQFParseInformation.class b/plugin/raven.sqdev.misc/bin/raven/sqdev/interfaces/ISQFParseInformation.class deleted file mode 100644 index 8b0d30c9..00000000 Binary files a/plugin/raven.sqdev.misc/bin/raven/sqdev/interfaces/ISQFParseInformation.class and /dev/null differ diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/FileUtil.class b/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/FileUtil.class deleted file mode 100644 index 864fdc24..00000000 Binary files a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/FileUtil.class and /dev/null differ diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/Marker.class b/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/Marker.class deleted file mode 100644 index 26568b23..00000000 Binary files a/plugin/raven.sqdev.misc/bin/raven/sqdev/misc/Marker.class and /dev/null differ diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/misc/BasicErrorListener$Error.class b/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/misc/BasicErrorListener$Error.class deleted file mode 100644 index adf7d973..00000000 Binary files a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/misc/BasicErrorListener$Error.class and /dev/null differ diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/misc/BasicErrorListener.class b/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/misc/BasicErrorListener.class deleted file mode 100644 index 3f5c3a9c..00000000 Binary files a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/misc/BasicErrorListener.class and /dev/null differ diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/misc/ParseResult.class b/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/misc/ParseResult.class deleted file mode 100644 index b9395e8c..00000000 Binary files a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/misc/ParseResult.class and /dev/null differ diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/preprocessor/PreprocessorErrorListener.class b/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/preprocessor/PreprocessorErrorListener.class deleted file mode 100644 index 515967fd..00000000 Binary files a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/preprocessor/PreprocessorErrorListener.class and /dev/null differ diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParser.class b/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParser.class deleted file mode 100644 index 6c229d33..00000000 Binary files a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/preprocessor/PreprocessorParser.class and /dev/null differ diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFLexer.class b/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFLexer.class deleted file mode 100644 index f8c6b725..00000000 Binary files a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFLexer.class and /dev/null differ diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParseInformation.class b/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParseInformation.class deleted file mode 100644 index 4f91280e..00000000 Binary files a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParseInformation.class and /dev/null differ diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParseResult.class b/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParseResult.class deleted file mode 100644 index 8d4b4890..00000000 Binary files a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParseResult.class and /dev/null differ diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParseUtil.class b/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParseUtil.class deleted file mode 100644 index 0efc917d..00000000 Binary files a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParseUtil.class and /dev/null differ diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$ArrayContext.class b/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$ArrayContext.class deleted file mode 100644 index 0ba86b69..00000000 Binary files a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$ArrayContext.class and /dev/null differ diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$AssignmentContext.class b/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$AssignmentContext.class deleted file mode 100644 index 0b0e5290..00000000 Binary files a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$AssignmentContext.class and /dev/null differ diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$BinaryExpressionContext.class b/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$BinaryExpressionContext.class deleted file mode 100644 index d0d823ec..00000000 Binary files a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$BinaryExpressionContext.class and /dev/null differ diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$CommonErrorContext.class b/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$CommonErrorContext.class deleted file mode 100644 index 979e97ee..00000000 Binary files a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$CommonErrorContext.class and /dev/null differ diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$ErrorContext.class b/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$ErrorContext.class deleted file mode 100644 index 5d40d73b..00000000 Binary files a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$ErrorContext.class and /dev/null differ diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$InlineCodeContext.class b/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$InlineCodeContext.class deleted file mode 100644 index 85d2c4ac..00000000 Binary files a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$InlineCodeContext.class and /dev/null differ diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$MacroArgumentContext.class b/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$MacroArgumentContext.class deleted file mode 100644 index 7d08d3f4..00000000 Binary files a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$MacroArgumentContext.class and /dev/null differ diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$MacroContext.class b/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$MacroContext.class deleted file mode 100644 index 99506b64..00000000 Binary files a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$MacroContext.class and /dev/null differ diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$NularOperatorContext.class b/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$NularOperatorContext.class deleted file mode 100644 index e9f8d155..00000000 Binary files a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$NularOperatorContext.class and /dev/null differ diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$NumberContext.class b/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$NumberContext.class deleted file mode 100644 index f2cbadef..00000000 Binary files a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$NumberContext.class and /dev/null differ diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$OperatorContext.class b/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$OperatorContext.class deleted file mode 100644 index dc8813f5..00000000 Binary files a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$OperatorContext.class and /dev/null differ diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$ParenthesisContext.class b/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$ParenthesisContext.class deleted file mode 100644 index d8290d30..00000000 Binary files a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$ParenthesisContext.class and /dev/null differ diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$PrimaryExpressionContext.class b/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$PrimaryExpressionContext.class deleted file mode 100644 index 6a419d99..00000000 Binary files a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$PrimaryExpressionContext.class and /dev/null differ diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$PunctuationContext.class b/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$PunctuationContext.class deleted file mode 100644 index b66b8a0f..00000000 Binary files a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$PunctuationContext.class and /dev/null differ diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$StatementContext.class b/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$StatementContext.class deleted file mode 100644 index c419c765..00000000 Binary files a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$StatementContext.class and /dev/null differ diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$StringContext.class b/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$StringContext.class deleted file mode 100644 index 1a30a517..00000000 Binary files a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$StringContext.class and /dev/null differ diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$UnaryExpressionContext.class b/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$UnaryExpressionContext.class deleted file mode 100644 index ca690cf2..00000000 Binary files a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser$UnaryExpressionContext.class and /dev/null differ diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser.class b/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser.class deleted file mode 100644 index 7330b40e..00000000 Binary files a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFParser.class and /dev/null differ diff --git a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFValidator.class b/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFValidator.class deleted file mode 100644 index e950a373..00000000 Binary files a/plugin/raven.sqdev.misc/bin/raven/sqdev/parser/sqf/SQFValidator.class and /dev/null differ diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/misc/Marker.java b/plugin/raven.sqdev.misc/src/raven/sqdev/misc/Marker.java deleted file mode 100644 index a0ab4d07..00000000 --- a/plugin/raven.sqdev.misc/src/raven/sqdev/misc/Marker.java +++ /dev/null @@ -1,45 +0,0 @@ -package raven.sqdev.misc; - -/** - * A container for all information associated with a marker - * @author Raven - * - */ -public class Marker { - - private String type; - private int offset; - private int length; - private String message; - private int severity; - - public Marker(String type, int offset, int length, String message, - int severity) { - this.type = type; - this.offset = offset; - this.length = length; - this.message = message; - this.severity = severity; - } - - public String getType() { - return type; - } - - public int getOffset() { - return offset; - } - - public int getLength() { - return length; - } - - public int getSeverity() { - return severity; - } - - public String getMessage() { - return message; - } - -} diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/parser/misc/BasicErrorListener.java b/plugin/raven.sqdev.misc/src/raven/sqdev/parser/misc/BasicErrorListener.java deleted file mode 100644 index 7f590511..00000000 --- a/plugin/raven.sqdev.misc/src/raven/sqdev/parser/misc/BasicErrorListener.java +++ /dev/null @@ -1,197 +0,0 @@ -package raven.sqdev.parser.misc; - -import java.util.ArrayList; -import java.util.List; - -import org.antlr.v4.runtime.BaseErrorListener; -import org.antlr.v4.runtime.RecognitionException; -import org.antlr.v4.runtime.Recognizer; -import org.antlr.v4.runtime.Token; -import org.eclipse.core.resources.IMarker; -import org.eclipse.core.runtime.Assert; - -import raven.sqdev.interfaces.IMarkerSupport; - -/** - * A basic error listener implementation that can be added to an ANTLR parser - * that will create error markers on the editor for every syntax error reported - * by the parser - * - * @author Raven - * - */ -public class BasicErrorListener extends BaseErrorListener { - protected class Error { - private int offset; - private int length; - private String message; - - public Error(int offset, int length, String message) { - this.offset = offset; - this.length = length; - this.message = message; - } - - public int getOffset() { - return offset; - } - - public int getLength() { - return length; - } - - public String getMessage() { - return message; - } - } - - /** - * The editor this listener resports to - */ - private IMarkerSupport markerAcceptor; - - /** - * Indicates whether errors should be suppressed and stored instead of being - * reported - */ - private boolean suppressErrors; - - private List suppressedErrors; - - - /** - * Create an instance of this error listener. - * - * @param editor - * The markerAcceptor the syntax errors and warnings should be - * reported to - * - */ - public BasicErrorListener(IMarkerSupport markerAcceptor) { - this(); - - Assert.isNotNull(markerAcceptor); - this.markerAcceptor = markerAcceptor; - } - - /** - * Create an instance of this error listener
- * If you use this constructor make sure that you have overwritten - * {@link #doReportMarker(String, int, int, String, int)} - */ - public BasicErrorListener() { - suppressedErrors = new ArrayList(); - } - - @Override - public void syntaxError(Recognizer recognizer, Object offendingSymbol, - int line, int charPositionInline, String msg, - RecognitionException e) { - if (line < 1 || !(offendingSymbol instanceof Token)) { - return; - } - - Token offendingToken = (Token) offendingSymbol; - - int length = (offendingToken.getType() == Token.EOF) ? 0 - : offendingToken.getText().length(); - - reportError(new Error(offendingToken.getStartIndex(), length, msg)); - } - - /** - * Reports an error to the respective editor - * - * @param error - * The Error to report - */ - public void reportError(Error error) { - if (suppressErrors) { - synchronized (suppressedErrors) { - suppressedErrors.add(error); - } - } else { - doReportMarker(IMarker.PROBLEM, error.getOffset(), - error.getLength(), error.getMessage(), - IMarker.SEVERITY_ERROR); - } - } - - /** - * This method is responsible for reporting the given information in form of - * a Marker. - * - * @param type - * type The marker's type - * @param offset - * The marker's offset - * @param length - * The marker's length - * @param message - * The marker's message - * @param severity - * The marker's severity - */ - protected void doReportMarker(String type, int offset, int length, - String message, int severity) { - markerAcceptor.createMarker(type, offset, length, message, severity); - } - - /** - * Reports an error to the respective editor - * - * @param offset - * The offset of the error - * @param length - * The length of the error - * @param msg - * The error message - */ - public void reportError(int offset, int length, String msg) { - reportError(new Error(offset, length, msg)); - } - - /** - * Specifies whether errors should be directly marked or rather be - * suppressed and stored internally - * - * @param suppress - * Whether to suppress erros - */ - public void suppressErrors(boolean suppress) { - suppressErrors = suppress; - } - - public boolean hasSuppressedErros() { - return suppressedErrors.size() > 0; - } - - /** - * Reports all errors that have been suppressed to this point and clears the - * list of suppressed errors - */ - public void flushSuppressedErros() { - synchronized (suppressedErrors) { - boolean wasSuppressing = suppressErrors; - suppressErrors = false; - - for (Error currentError : suppressedErrors) { - reportError(currentError); - } - - suppressedErrors.clear(); - - // recreate status from before - suppressErrors = wasSuppressing; - } - } - - /** - * Clears the list of suppressed errors - */ - public void clearSuppressedErrors() { - synchronized (suppressedErrors) { - suppressedErrors.clear(); - } - } -} diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/parser/misc/ParseResult.java b/plugin/raven.sqdev.misc/src/raven/sqdev/parser/misc/ParseResult.java deleted file mode 100644 index d2303e3f..00000000 --- a/plugin/raven.sqdev.misc/src/raven/sqdev/parser/misc/ParseResult.java +++ /dev/null @@ -1,81 +0,0 @@ -package raven.sqdev.parser.misc; - -import java.util.ArrayList; -import java.util.List; - -import raven.sqdev.interfaces.IMarkerSupport; -import raven.sqdev.misc.Marker; - -public class ParseResult implements IMarkerSupport { - - /** - * The list of reported markers - */ - private List markers; - - - public ParseResult() { - markers = new ArrayList(); - } - - /** - * Adds a new marker to this parse result - * - * @param type - * The marker's type - * @param offset - * The marker's offset - * @param length - * The marker's length - * @param message - * The marker's message - * @param severity - * The marker's severity - */ - public void addMarker(String type, int offset, int length, String message, - int severity) { - markers.add(new Marker(type, offset, length, message, severity)); - } - - /** - * Gets all the markers that are a result of the respective parsing - */ - public List getMarkers() { - return markers; - } - - /** - * Applies the respective markers to the given MarkerSupport - * - * @param support - * The MarkerSupport to add the markers to - */ - public void applyMarkersTo(IMarkerSupport support) { - for (Marker currentMarker : markers) { - support.createMarker(currentMarker.getType(), - currentMarker.getOffset(), currentMarker.getLength(), - currentMarker.getMessage(), currentMarker.getSeverity()); - } - } - - /** - * Merges the given parse result into this one - * - * @param other - * The other parse result to merge into this one - */ - public void mergeWith(ParseResult other) { - markers.addAll(other.getMarkers()); - } - - /** - * Dummy method used for compability reasons. Reroutes all calls to - * {@link #addMarker(String, int, int, String, int)} - */ - @Override - public void createMarker(String type, int offset, int length, - String message, int severity) { - // dummy method for compability - addMarker(type, offset, length, message, severity); - } -} diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/parser/sqf/SQFLexer.java b/plugin/raven.sqdev.misc/src/raven/sqdev/parser/sqf/SQFLexer.java deleted file mode 100644 index 56015b83..00000000 --- a/plugin/raven.sqdev.misc/src/raven/sqdev/parser/sqf/SQFLexer.java +++ /dev/null @@ -1,314 +0,0 @@ -// Generated from SQF.g4 by ANTLR 4.5.3 - -package raven.sqdev.parser.sqf; - -import java.util.List; - -import org.antlr.v4.runtime.Lexer; -import org.antlr.v4.runtime.CharStream; -import org.antlr.v4.runtime.Token; -import org.antlr.v4.runtime.TokenStream; -import org.antlr.v4.runtime.*; -import org.antlr.v4.runtime.atn.*; -import org.antlr.v4.runtime.dfa.DFA; -import org.antlr.v4.runtime.misc.*; - -@SuppressWarnings({ "all", "warnings", "unchecked", "unused", "cast" }) -public class SQFLexer extends Lexer { - static { - RuntimeMetaData.checkVersion("4.5.3", RuntimeMetaData.VERSION); - } - - protected static final DFA[] _decisionToDFA; - protected static final PredictionContextCache _sharedContextCache = new PredictionContextCache(); - public static final int OPERATOR_PRECEDENCE_MULTIPLY = 1, - OPERATOR_PRECEDENCE_ADD = 2, PUCTUATION_OTHER = 3, OR = 4, AND = 5, - COMPARE_PRECEDENCE_OPERATOR = 6, ELSE = 7, POWER = 8, SEMICOLON = 9, - COMMA = 10, EQUALS = 11, PRIVATE = 12, MACRO_DECLARATION = 13, - WHITESPACE = 14, COMMENT = 15, NUMBER = 16, ID = 17, - BINARY_OPERATOR = 18, STRING = 19, C_B_O = 20, C_B_C = 21, - S_B_O = 22, S_B_C = 23, R_B_O = 24, R_B_C = 25, OTHER = 26; - public static String[] modeNames = { "DEFAULT_MODE" }; - - public static final String[] ruleNames = { "OPERATOR_PRECEDENCE_MULTIPLY", - "OPERATOR_PRECEDENCE_ADD", "PUCTUATION_OTHER", "OR", "AND", - "COMPARE_PRECEDENCE_OPERATOR", "ELSE", "POWER", "SEMICOLON", - "COMMA", "EQUALS", "PRIVATE", "MACRO_DECLARATION", "WHITESPACE", - "COMMENT", "NUMBER", "ID", "BINARY_OPERATOR", "STRING", "C_B_O", - "C_B_C", "S_B_O", "S_B_C", "R_B_O", "R_B_C", "OTHER", "LETTER", - "INT", "A", "E", "P", "L", "R", "S", "T", "I", "V" }; - - private static final String[] _LITERAL_NAMES = { null, null, null, "'!'", - "'||'", "'&&'", null, null, "'^'", "';'", "','", "'='", null, null, - null, null, null, null, "':'", null, "'{'", "'}'", "'['", "']'", - "'('", "')'" }; - private static final String[] _SYMBOLIC_NAMES = { null, - "OPERATOR_PRECEDENCE_MULTIPLY", "OPERATOR_PRECEDENCE_ADD", - "PUCTUATION_OTHER", "OR", "AND", "COMPARE_PRECEDENCE_OPERATOR", - "ELSE", "POWER", "SEMICOLON", "COMMA", "EQUALS", "PRIVATE", - "MACRO_DECLARATION", "WHITESPACE", "COMMENT", "NUMBER", "ID", - "BINARY_OPERATOR", "STRING", "C_B_O", "C_B_C", "S_B_O", "S_B_C", - "R_B_O", "R_B_C", "OTHER" }; - public static final Vocabulary VOCABULARY = new VocabularyImpl( - _LITERAL_NAMES, _SYMBOLIC_NAMES); - - /** - * @deprecated Use {@link #VOCABULARY} instead. - */ - @Deprecated - public static final String[] tokenNames; - static { - tokenNames = new String[_SYMBOLIC_NAMES.length]; - for (int i = 0; i < tokenNames.length; i++) { - tokenNames[i] = VOCABULARY.getLiteralName(i); - if (tokenNames[i] == null) { - tokenNames[i] = VOCABULARY.getSymbolicName(i); - } - - if (tokenNames[i] == null) { - tokenNames[i] = ""; - } - } - } - - @Override - @Deprecated - public String[] getTokenNames() { - return tokenNames; - } - - @Override - - public Vocabulary getVocabulary() { - return VOCABULARY; - } - - - protected List binaryOperators; - protected List unaryOperators; - protected List macroNames; - - - public SQFLexer(CharStream input, List binaryOperators, - List unaryOperators, List macroNames) { - this(input); - - // make operators lowercase - for (int i = 0; i < binaryOperators.size(); i++) { - binaryOperators.set(i, binaryOperators.get(i).toLowerCase()); - } - for (int i = 0; i < unaryOperators.size(); i++) { - unaryOperators.set(i, unaryOperators.get(i).toLowerCase()); - } - - this.binaryOperators = binaryOperators; - this.unaryOperators = unaryOperators; - this.macroNames = macroNames; - } - - - public SQFLexer(CharStream input) { - super(input); - _interp = new LexerATNSimulator(this, _ATN, _decisionToDFA, - _sharedContextCache); - } - - @Override - public String getGrammarFileName() { - return "SQF.g4"; - } - - @Override - public String[] getRuleNames() { - return ruleNames; - } - - @Override - public String getSerializedATN() { - return _serializedATN; - } - - @Override - public String[] getModeNames() { - return modeNames; - } - - @Override - public ATN getATN() { - return _ATN; - } - - @Override - public void action(RuleContext _localctx, int ruleIndex, int actionIndex) { - switch (ruleIndex) { - case 16: - ID_action((RuleContext) _localctx, actionIndex); - break; - } - } - - private void ID_action(RuleContext _localctx, int actionIndex) { - switch (actionIndex) { - case 0: - - if (macroNames.contains(getText())) { - // it's not an ID but a macro name - setType(SQFParser.MACRO_NAME); - } else { - if (binaryOperators.contains(getText().toLowerCase())) { - // it's not an ID but a binary operator - setType(SQFParser.BINARY_OPERATOR); - } else { - if (unaryOperators.contains(getText().toLowerCase())) { - // it's not an ID but a unary operator - setType(SQFParser.UNARY_OPERATOR); - } - } - } - - break; - } - } - - public static final String _serializedATN = "\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\2\34\u0166\b\1\4\2" - + "\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4" - + "\13\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22" - + "\t\22\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31" - + "\t\31\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37\t\37\4 \t" - + " \4!\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t&\3\2\3\2\3\2\3\2\5\2R\n\2\3\3\3" - + "\3\3\3\3\3\3\3\3\3\3\3\5\3[\n\3\3\4\3\4\3\5\3\5\3\5\3\6\3\6\3\6\3\7\3" - + "\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\5\7p\n\7\3\b\3\b\3\b\3\b\3\b\3" - + "\t\3\t\3\n\3\n\3\13\3\13\3\f\3\f\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\16" - + "\3\16\3\16\3\16\3\16\3\16\3\16\3\16\3\16\3\16\3\16\3\16\3\16\5\16\u0094" - + "\n\16\3\16\7\16\u0097\n\16\f\16\16\16\u009a\13\16\3\16\3\16\3\16\3\16" - + "\3\16\3\16\3\16\3\16\3\16\3\16\3\16\7\16\u00a7\n\16\f\16\16\16\u00aa\13" - + "\16\3\16\5\16\u00ad\n\16\3\16\3\16\3\17\6\17\u00b2\n\17\r\17\16\17\u00b3" - + "\3\17\3\17\3\20\3\20\3\20\3\20\7\20\u00bc\n\20\f\20\16\20\u00bf\13\20" - + "\3\20\5\20\u00c2\n\20\3\20\3\20\3\20\3\20\7\20\u00c8\n\20\f\20\16\20\u00cb" - + "\13\20\3\20\3\20\5\20\u00cf\n\20\3\20\3\20\3\21\6\21\u00d4\n\21\r\21\16" - + "\21\u00d5\3\21\6\21\u00d9\n\21\r\21\16\21\u00da\3\21\3\21\6\21\u00df\n" - + "\21\r\21\16\21\u00e0\3\21\3\21\6\21\u00e5\n\21\r\21\16\21\u00e6\3\21\3" - + "\21\3\21\5\21\u00ec\n\21\3\21\3\21\6\21\u00f0\n\21\r\21\16\21\u00f1\5" - + "\21\u00f4\n\21\3\21\3\21\5\21\u00f8\n\21\3\21\6\21\u00fb\n\21\r\21\16" - + "\21\u00fc\3\21\6\21\u0100\n\21\r\21\16\21\u0101\3\21\3\21\6\21\u0106\n" - + "\21\r\21\16\21\u0107\3\21\3\21\6\21\u010c\n\21\r\21\16\21\u010d\3\21\3" - + "\21\3\21\5\21\u0113\n\21\3\21\3\21\6\21\u0117\n\21\r\21\16\21\u0118\5" - + "\21\u011b\n\21\5\21\u011d\n\21\3\22\3\22\3\22\6\22\u0122\n\22\r\22\16" - + "\22\u0123\3\22\3\22\3\23\3\23\3\24\3\24\3\24\3\24\7\24\u012e\n\24\f\24" - + "\16\24\u0131\13\24\3\24\3\24\3\24\3\24\3\24\7\24\u0138\n\24\f\24\16\24" - + "\u013b\13\24\3\24\5\24\u013e\n\24\3\25\3\25\3\26\3\26\3\27\3\27\3\30\3" - + "\30\3\31\3\31\3\32\3\32\3\33\6\33\u014d\n\33\r\33\16\33\u014e\3\34\3\34" - + "\3\35\3\35\3\36\3\36\3\37\3\37\3 \3 \3!\3!\3\"\3\"\3#\3#\3$\3$\3%\3%\3" - + "&\3&\6\u0098\u00bd\u00c9\u014e\2\'\3\3\5\4\7\5\t\6\13\7\r\b\17\t\21\n" - + "\23\13\25\f\27\r\31\16\33\17\35\20\37\21!\22#\23%\24\'\25)\26+\27-\30" - + "/\31\61\32\63\33\65\34\67\29\2;\2=\2?\2A\2C\2E\2G\2I\2K\2\3\2\25\5\2\'" - + "\',,\61\61\4\2--//\4\2>>@@\3\2\f\f\5\2\13\f\17\17\"\"\3\3\f\f\3\2$$\3" - + "\2))\4\2C\\c|\3\2\62;\4\2CCcc\4\2GGgg\4\2RRrr\4\2NNnn\4\2TTtt\4\2UUuu" - + "\4\2VVvv\4\2KKkk\4\2XXxx\u018a\2\3\3\2\2\2\2\5\3\2\2\2\2\7\3\2\2\2\2\t" - + "\3\2\2\2\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2\2\2\21\3\2\2\2\2\23\3\2\2" - + "\2\2\25\3\2\2\2\2\27\3\2\2\2\2\31\3\2\2\2\2\33\3\2\2\2\2\35\3\2\2\2\2" - + "\37\3\2\2\2\2!\3\2\2\2\2#\3\2\2\2\2%\3\2\2\2\2\'\3\2\2\2\2)\3\2\2\2\2" - + "+\3\2\2\2\2-\3\2\2\2\2/\3\2\2\2\2\61\3\2\2\2\2\63\3\2\2\2\2\65\3\2\2\2" - + "\3Q\3\2\2\2\5Z\3\2\2\2\7\\\3\2\2\2\t^\3\2\2\2\13a\3\2\2\2\ro\3\2\2\2\17" - + "q\3\2\2\2\21v\3\2\2\2\23x\3\2\2\2\25z\3\2\2\2\27|\3\2\2\2\31~\3\2\2\2" - + "\33\u00ac\3\2\2\2\35\u00b1\3\2\2\2\37\u00ce\3\2\2\2!\u00f3\3\2\2\2#\u0121" - + "\3\2\2\2%\u0127\3\2\2\2\'\u013d\3\2\2\2)\u013f\3\2\2\2+\u0141\3\2\2\2" - + "-\u0143\3\2\2\2/\u0145\3\2\2\2\61\u0147\3\2\2\2\63\u0149\3\2\2\2\65\u014c" - + "\3\2\2\2\67\u0150\3\2\2\29\u0152\3\2\2\2;\u0154\3\2\2\2=\u0156\3\2\2\2" - + "?\u0158\3\2\2\2A\u015a\3\2\2\2C\u015c\3\2\2\2E\u015e\3\2\2\2G\u0160\3" - + "\2\2\2I\u0162\3\2\2\2K\u0164\3\2\2\2MR\t\2\2\2NO\7o\2\2OP\7q\2\2PR\7f" - + "\2\2QM\3\2\2\2QN\3\2\2\2R\4\3\2\2\2S[\t\3\2\2TU\7o\2\2UV\7k\2\2V[\7p\2" - + "\2WX\7o\2\2XY\7c\2\2Y[\7z\2\2ZS\3\2\2\2ZT\3\2\2\2ZW\3\2\2\2[\6\3\2\2\2" - + "\\]\7#\2\2]\b\3\2\2\2^_\7~\2\2_`\7~\2\2`\n\3\2\2\2ab\7(\2\2bc\7(\2\2c" - + "\f\3\2\2\2de\7?\2\2ep\7?\2\2fg\7#\2\2gp\7?\2\2hp\t\4\2\2ij\7>\2\2jp\7" - + "?\2\2kl\7@\2\2lp\7?\2\2mn\7@\2\2np\7@\2\2od\3\2\2\2of\3\2\2\2oh\3\2\2" - + "\2oi\3\2\2\2ok\3\2\2\2om\3\2\2\2p\16\3\2\2\2qr\5=\37\2rs\5A!\2st\5E#\2" - + "tu\5=\37\2u\20\3\2\2\2vw\7`\2\2w\22\3\2\2\2xy\7=\2\2y\24\3\2\2\2z{\7." - + "\2\2{\26\3\2\2\2|}\7?\2\2}\30\3\2\2\2~\177\5? \2\177\u0080\5C\"\2\u0080" - + "\u0081\5I%\2\u0081\u0082\5K&\2\u0082\u0083\5;\36\2\u0083\u0084\5G$\2\u0084" - + "\u0085\5=\37\2\u0085\32\3\2\2\2\u0086\u0087\7%\2\2\u0087\u0088\7k\2\2" - + "\u0088\u0089\7h\2\2\u0089\u008a\7f\2\2\u008a\u008b\7g\2\2\u008b\u0094" - + "\7h\2\2\u008c\u008d\7%\2\2\u008d\u008e\7k\2\2\u008e\u008f\7h\2\2\u008f" - + "\u0090\7p\2\2\u0090\u0091\7f\2\2\u0091\u0092\7g\2\2\u0092\u0094\7h\2\2" - + "\u0093\u0086\3\2\2\2\u0093\u008c\3\2\2\2\u0094\u0098\3\2\2\2\u0095\u0097" - + "\13\2\2\2\u0096\u0095\3\2\2\2\u0097\u009a\3\2\2\2\u0098\u0099\3\2\2\2" - + "\u0098\u0096\3\2\2\2\u0099\u009b\3\2\2\2\u009a\u0098\3\2\2\2\u009b\u009c" - + "\7%\2\2\u009c\u009d\7g\2\2\u009d\u009e\7p\2\2\u009e\u009f\7f\2\2\u009f" - + "\u00a0\7k\2\2\u00a0\u00ad\7h\2\2\u00a1\u00a8\7%\2\2\u00a2\u00a7\n\5\2" - + "\2\u00a3\u00a4\7\"\2\2\u00a4\u00a5\7^\2\2\u00a5\u00a7\7\f\2\2\u00a6\u00a2" - + "\3\2\2\2\u00a6\u00a3\3\2\2\2\u00a7\u00aa\3\2\2\2\u00a8\u00a6\3\2\2\2\u00a8" - + "\u00a9\3\2\2\2\u00a9\u00ab\3\2\2\2\u00aa\u00a8\3\2\2\2\u00ab\u00ad\7\f" - + "\2\2\u00ac\u0093\3\2\2\2\u00ac\u00a1\3\2\2\2\u00ad\u00ae\3\2\2\2\u00ae" - + "\u00af\b\16\2\2\u00af\34\3\2\2\2\u00b0\u00b2\t\6\2\2\u00b1\u00b0\3\2\2" - + "\2\u00b2\u00b3\3\2\2\2\u00b3\u00b1\3\2\2\2\u00b3\u00b4\3\2\2\2\u00b4\u00b5" - + "\3\2\2\2\u00b5\u00b6\b\17\2\2\u00b6\36\3\2\2\2\u00b7\u00b8\7\61\2\2\u00b8" - + "\u00b9\7\61\2\2\u00b9\u00bd\3\2\2\2\u00ba\u00bc\13\2\2\2\u00bb\u00ba\3" - + "\2\2\2\u00bc\u00bf\3\2\2\2\u00bd\u00be\3\2\2\2\u00bd\u00bb\3\2\2\2\u00be" - + "\u00c1\3\2\2\2\u00bf\u00bd\3\2\2\2\u00c0\u00c2\t\7\2\2\u00c1\u00c0\3\2" - + "\2\2\u00c2\u00cf\3\2\2\2\u00c3\u00c4\7\61\2\2\u00c4\u00c5\7,\2\2\u00c5" - + "\u00c9\3\2\2\2\u00c6\u00c8\13\2\2\2\u00c7\u00c6\3\2\2\2\u00c8\u00cb\3" - + "\2\2\2\u00c9\u00ca\3\2\2\2\u00c9\u00c7\3\2\2\2\u00ca\u00cc\3\2\2\2\u00cb" - + "\u00c9\3\2\2\2\u00cc\u00cd\7,\2\2\u00cd\u00cf\7\61\2\2\u00ce\u00b7\3\2" - + "\2\2\u00ce\u00c3\3\2\2\2\u00cf\u00d0\3\2\2\2\u00d0\u00d1\b\20\2\2\u00d1" - + " \3\2\2\2\u00d2\u00d4\59\35\2\u00d3\u00d2\3\2\2\2\u00d4\u00d5\3\2\2\2" - + "\u00d5\u00d3\3\2\2\2\u00d5\u00d6\3\2\2\2\u00d6\u00f4\3\2\2\2\u00d7\u00d9" - + "\59\35\2\u00d8\u00d7\3\2\2\2\u00d9\u00da\3\2\2\2\u00da\u00d8\3\2\2\2\u00da" - + "\u00db\3\2\2\2\u00db\u00dc\3\2\2\2\u00dc\u00de\7\60\2\2\u00dd\u00df\5" - + "9\35\2\u00de\u00dd\3\2\2\2\u00df\u00e0\3\2\2\2\u00e0\u00de\3\2\2\2\u00e0" - + "\u00e1\3\2\2\2\u00e1\u00f4\3\2\2\2\u00e2\u00e4\7\60\2\2\u00e3\u00e5\5" - + "9\35\2\u00e4\u00e3\3\2\2\2\u00e5\u00e6\3\2\2\2\u00e6\u00e4\3\2\2\2\u00e6" - + "\u00e7\3\2\2\2\u00e7\u00f4\3\2\2\2\u00e8\u00e9\7\62\2\2\u00e9\u00ec\7" - + "z\2\2\u00ea\u00ec\7&\2\2\u00eb\u00e8\3\2\2\2\u00eb\u00ea\3\2\2\2\u00ec" - + "\u00ef\3\2\2\2\u00ed\u00f0\59\35\2\u00ee\u00f0\5\67\34\2\u00ef\u00ed\3" - + "\2\2\2\u00ef\u00ee\3\2\2\2\u00f0\u00f1\3\2\2\2\u00f1\u00ef\3\2\2\2\u00f1" - + "\u00f2\3\2\2\2\u00f2\u00f4\3\2\2\2\u00f3\u00d3\3\2\2\2\u00f3\u00d8\3\2" - + "\2\2\u00f3\u00e2\3\2\2\2\u00f3\u00eb\3\2\2\2\u00f4\u011c\3\2\2\2\u00f5" - + "\u00f7\7g\2\2\u00f6\u00f8\7/\2\2\u00f7\u00f6\3\2\2\2\u00f7\u00f8\3\2\2" - + "\2\u00f8\u011a\3\2\2\2\u00f9\u00fb\59\35\2\u00fa\u00f9\3\2\2\2\u00fb\u00fc" - + "\3\2\2\2\u00fc\u00fa\3\2\2\2\u00fc\u00fd\3\2\2\2\u00fd\u011b\3\2\2\2\u00fe" - + "\u0100\59\35\2\u00ff\u00fe\3\2\2\2\u0100\u0101\3\2\2\2\u0101\u00ff\3\2" - + "\2\2\u0101\u0102\3\2\2\2\u0102\u0103\3\2\2\2\u0103\u0105\7\60\2\2\u0104" - + "\u0106\59\35\2\u0105\u0104\3\2\2\2\u0106\u0107\3\2\2\2\u0107\u0105\3\2" - + "\2\2\u0107\u0108\3\2\2\2\u0108\u011b\3\2\2\2\u0109\u010b\7\60\2\2\u010a" - + "\u010c\59\35\2\u010b\u010a\3\2\2\2\u010c\u010d\3\2\2\2\u010d\u010b\3\2" - + "\2\2\u010d\u010e\3\2\2\2\u010e\u011b\3\2\2\2\u010f\u0110\7\62\2\2\u0110" - + "\u0113\7z\2\2\u0111\u0113\7&\2\2\u0112\u010f\3\2\2\2\u0112\u0111\3\2\2" - + "\2\u0113\u0116\3\2\2\2\u0114\u0117\59\35\2\u0115\u0117\5\67\34\2\u0116" - + "\u0114\3\2\2\2\u0116\u0115\3\2\2\2\u0117\u0118\3\2\2\2\u0118\u0116\3\2" - + "\2\2\u0118\u0119\3\2\2\2\u0119\u011b\3\2\2\2\u011a\u00fa\3\2\2\2\u011a" - + "\u00ff\3\2\2\2\u011a\u0109\3\2\2\2\u011a\u0112\3\2\2\2\u011b\u011d\3\2" - + "\2\2\u011c\u00f5\3\2\2\2\u011c\u011d\3\2\2\2\u011d\"\3\2\2\2\u011e\u0122" - + "\5\67\34\2\u011f\u0122\59\35\2\u0120\u0122\7a\2\2\u0121\u011e\3\2\2\2" - + "\u0121\u011f\3\2\2\2\u0121\u0120\3\2\2\2\u0122\u0123\3\2\2\2\u0123\u0121" - + "\3\2\2\2\u0123\u0124\3\2\2\2\u0124\u0125\3\2\2\2\u0125\u0126\b\22\3\2" - + "\u0126$\3\2\2\2\u0127\u0128\7<\2\2\u0128&\3\2\2\2\u0129\u012f\7$\2\2\u012a" - + "\u012e\n\b\2\2\u012b\u012c\7$\2\2\u012c\u012e\7$\2\2\u012d\u012a\3\2\2" - + "\2\u012d\u012b\3\2\2\2\u012e\u0131\3\2\2\2\u012f\u012d\3\2\2\2\u012f\u0130" - + "\3\2\2\2\u0130\u0132\3\2\2\2\u0131\u012f\3\2\2\2\u0132\u013e\7$\2\2\u0133" - + "\u0139\7)\2\2\u0134\u0138\n\t\2\2\u0135\u0136\7)\2\2\u0136\u0138\7)\2" - + "\2\u0137\u0134\3\2\2\2\u0137\u0135\3\2\2\2\u0138\u013b\3\2\2\2\u0139\u0137" - + "\3\2\2\2\u0139\u013a\3\2\2\2\u013a\u013c\3\2\2\2\u013b\u0139\3\2\2\2\u013c" - + "\u013e\7)\2\2\u013d\u0129\3\2\2\2\u013d\u0133\3\2\2\2\u013e(\3\2\2\2\u013f" - + "\u0140\7}\2\2\u0140*\3\2\2\2\u0141\u0142\7\177\2\2\u0142,\3\2\2\2\u0143" - + "\u0144\7]\2\2\u0144.\3\2\2\2\u0145\u0146\7_\2\2\u0146\60\3\2\2\2\u0147" - + "\u0148\7*\2\2\u0148\62\3\2\2\2\u0149\u014a\7+\2\2\u014a\64\3\2\2\2\u014b" - + "\u014d\13\2\2\2\u014c\u014b\3\2\2\2\u014d\u014e\3\2\2\2\u014e\u014f\3" - + "\2\2\2\u014e\u014c\3\2\2\2\u014f\66\3\2\2\2\u0150\u0151\t\n\2\2\u0151" - + "8\3\2\2\2\u0152\u0153\t\13\2\2\u0153:\3\2\2\2\u0154\u0155\t\f\2\2\u0155" - + "<\3\2\2\2\u0156\u0157\t\r\2\2\u0157>\3\2\2\2\u0158\u0159\t\16\2\2\u0159" - + "@\3\2\2\2\u015a\u015b\t\17\2\2\u015bB\3\2\2\2\u015c\u015d\t\20\2\2\u015d" - + "D\3\2\2\2\u015e\u015f\t\21\2\2\u015fF\3\2\2\2\u0160\u0161\t\22\2\2\u0161" - + "H\3\2\2\2\u0162\u0163\t\23\2\2\u0163J\3\2\2\2\u0164\u0165\t\24\2\2\u0165" - + "L\3\2\2\2*\2QZo\u0093\u0098\u00a6\u00a8\u00ac\u00b3\u00bd\u00c1\u00c9" - + "\u00ce\u00d5\u00da\u00e0\u00e6\u00eb\u00ef\u00f1\u00f3\u00f7\u00fc\u0101" - + "\u0107\u010d\u0112\u0116\u0118\u011a\u011c\u0121\u0123\u012d\u012f\u0137" - + "\u0139\u013d\u014e\4\b\2\2\3\22\2"; - public static final ATN _ATN = new ATNDeserializer() - .deserialize(_serializedATN.toCharArray()); - static { - _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; - for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { - _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); - } - } -} \ No newline at end of file diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/parser/sqf/SQFParseResult.java b/plugin/raven.sqdev.misc/src/raven/sqdev/parser/sqf/SQFParseResult.java deleted file mode 100644 index d2933d66..00000000 --- a/plugin/raven.sqdev.misc/src/raven/sqdev/parser/sqf/SQFParseResult.java +++ /dev/null @@ -1,75 +0,0 @@ -package raven.sqdev.parser.sqf; - -import java.util.ArrayList; -import java.util.List; - -import org.eclipse.jface.text.Position; - -import raven.sqdev.infoCollection.base.Variable; -import raven.sqdev.parser.misc.ParseResult; - -/** - * A basic implementation of an {@link ISQFParseResult} - * - * @author Raven - * - */ -public class SQFParseResult extends ParseResult { - - /** - * A list of local variables declared during the parsing - */ - private List declaredLocalVariables; - - /** - * A list of global variables declared during the parsing - */ - private List declaredGlobalVariables; - /** - * A list of folding areas - */ - private List foldingAreas; - - - public SQFParseResult() { - foldingAreas = new ArrayList(); - } - - /** - * Sets the found variables - * - * @param localVariables - * The list of found local variables - * @param globalVariables - * The list of found global variables - */ - public void setVariables(List localVariables, - List globalVariables) { - - declaredLocalVariables = localVariables; - declaredGlobalVariables = globalVariables; - } - - /** - * Adds a folding area - * - * @param position - * The position describing the location that should be foldable - */ - public void addFoldingArea(Position position) { - foldingAreas.add(position); - } - - public List getDeclaredLocalVariables() { - return declaredLocalVariables; - } - - public List getDeclaredGlobalVariables() { - return declaredGlobalVariables; - } - - public List getFoldingAreas() { - return foldingAreas; - } - -} diff --git a/plugin/raven.sqdev.misc/src/raven/sqdev/parser/sqf/SQFParseUtil.java b/plugin/raven.sqdev.misc/src/raven/sqdev/parser/sqf/SQFParseUtil.java deleted file mode 100644 index c36a61ef..00000000 --- a/plugin/raven.sqdev.misc/src/raven/sqdev/parser/sqf/SQFParseUtil.java +++ /dev/null @@ -1,40 +0,0 @@ -package raven.sqdev.parser.sqf; - -import java.util.ArrayList; -import java.util.List; - -import raven.sqdev.infoCollection.base.Variable; - -/** - * A collection of util methods for SQF parsing - * - * @author Raven - * - */ -public class SQFParseUtil { - - /** - * Gets the default magic variables that are present in SQF code - */ - public static final List getDefaultMagicVars() { - List magicVars = new ArrayList(); - magicVars.add(new Variable("_this", - "This variable is available inside of functions and contains the parameters given to it.")); - magicVars.add(new Variable("_fnc_scriptName", - "A String containing the function's name. Only awaylable when the function has " - + "been compiled via CfgFunctions.")); - magicVars.add(new Variable("_fnc_scriptNameParent", - "A String containing the function's parent's name. Only awaylable when the function has " - + "been compiled via CfgFunctions.")); - magicVars.add(new Variable("_x", - "References the current object oin the iteration. Available inside count or forEach loops")); - magicVars.add(new Variable("_forEachIndex", - "References the index of the current object in the iteration. Only available in a " - + "forEach loop.")); - magicVars.add(new Variable("_thisEventHandler", - "References the current event handler. Only available inside an EventHandler")); - - return magicVars; - } - -} diff --git a/plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/pages/SQDevGeneralPreferencePage$1.class b/plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/pages/SQDevGeneralPreferencePage$1.class deleted file mode 100644 index c0042efa..00000000 Binary files a/plugin/raven.sqdev.preferences/bin/raven/sqdev/preferences/pages/SQDevGeneralPreferencePage$1.class and /dev/null differ diff --git a/plugin/raven.sqdev.util/bin/raven/sqdev/util/SQDevProjectBuilder.class b/plugin/raven.sqdev.util/bin/raven/sqdev/util/SQDevProjectBuilder.class deleted file mode 100644 index ffeaf31b..00000000 Binary files a/plugin/raven.sqdev.util/bin/raven/sqdev/util/SQDevProjectBuilder.class and /dev/null differ