Search in sources :

Example 1 with Value

use of com.intellij.psi.codeStyle.extractor.values.Value in project intellij-community by JetBrains.

the class BruteForceProcessor method runWithProgress.

@Override
public ValuesExtractionResult runWithProgress(Project project, CodeStyleSettings settings, PsiFile file, ProgressIndicator indicator) {
    List<Value> values = getFormattingValues(settings, file.getLanguage());
    Differ differ = myLangExtractor.getDiffer(project, file, settings);
    ValuesExtractionResult container = new ValuesExtractionResultImpl(values);
    Utils.adjustValuesMin(container, differ, indicator);
    return container;
}
Also used : ValuesExtractionResultImpl(com.intellij.psi.codeStyle.extractor.values.ValuesExtractionResultImpl) Differ(com.intellij.psi.codeStyle.extractor.differ.Differ) ValuesExtractionResult(com.intellij.psi.codeStyle.extractor.values.ValuesExtractionResult) Value(com.intellij.psi.codeStyle.extractor.values.Value)

Example 2 with Value

use of com.intellij.psi.codeStyle.extractor.values.Value in project intellij-community by JetBrains.

the class BruteForceProcessor method randomizeSettings.

public void randomizeSettings(CodeStyleSettings settings, Language language) {
    List<Value> values = getFormattingValues(settings, language);
    Random rand = new Random();
    for (Value value : values) {
        Object[] possible = value.getPossibleValues();
        int index = rand.nextInt(possible.length);
        value.value = possible[index];
        value.write(false);
    }
}
Also used : Random(java.util.Random) Value(com.intellij.psi.codeStyle.extractor.values.Value)

Example 3 with Value

use of com.intellij.psi.codeStyle.extractor.values.Value in project intellij-community by JetBrains.

the class CodeStyleDeriveProcessor method backupValues.

public Map<Value, Object> backupValues(CodeStyleSettings settings, Language language) {
    List<Value> baseValues = getFormattingValues(settings, language);
    Map<Value, Object> res = ContainerUtil.newHashMap();
    for (Value baseValue : baseValues) {
        res.put(baseValue, baseValue.value);
    }
    return res;
}
Also used : Value(com.intellij.psi.codeStyle.extractor.values.Value)

Example 4 with Value

use of com.intellij.psi.codeStyle.extractor.values.Value in project intellij-community by JetBrains.

the class CodeStyleDeriveProcessor method readAll.

@NotNull
private List<Value> readAll(@NotNull String instanceName, @NotNull Object instance) {
    Class<?> cls = instance.getClass();
    List<Value> ret = new ArrayList<>();
    ClassSerializer serializer = new ClassSerializer(instanceName, instance);
    for (Field field : cls.getDeclaredFields()) {
        field = ClassSerializer.getPreparedField(field);
        if (field == null || field.getName().endsWith("_FORCE"))
            continue;
        try {
            ret.add(buildFValue(field, instance, serializer));
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }
    }
    return ret;
}
Also used : ClassSerializer(com.intellij.psi.codeStyle.extractor.values.ClassSerializer) Field(java.lang.reflect.Field) Value(com.intellij.psi.codeStyle.extractor.values.Value) NotNull(org.jetbrains.annotations.NotNull)

Example 5 with Value

use of com.intellij.psi.codeStyle.extractor.values.Value in project intellij-community by JetBrains.

the class ExtractCodeStyleAction method reportResult.

public void reportResult(final ValuesExtractionResult forSelection, final Project project, final CodeStyleSettings cloneSettings, final PsiFile file, final Map<Value, Object> backup) {
    final Balloon balloon = JBPopupFactory.getInstance().createHtmlTextBalloonBuilder("Formatting Options were extracted<br/><a href=\"apply\">Apply</a> <a href=\"details\">Details...</a>", MessageType.INFO, new HyperlinkListener() {

        @Override
        public void hyperlinkUpdate(HyperlinkEvent e) {
            if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
                boolean apply = "apply".equals(e.getDescription());
                ExtractedSettingsDialog myDialog = null;
                if (!apply) {
                    final List<Value> values = forSelection.getValues();
                    final LanguageCodeStyleSettingsProvider[] providers = Extensions.getExtensions(LanguageCodeStyleSettingsProvider.EP_NAME);
                    Language language = file.getLanguage();
                    CodeStyleSettingsNameProvider nameProvider = new CodeStyleSettingsNameProvider();
                    for (final LanguageCodeStyleSettingsProvider provider : providers) {
                        Language target = provider.getLanguage();
                        if (target.equals(language)) {
                            //this is our language
                            nameProvider.addSettings(provider);
                            myDialog = new ExtractedSettingsDialog(project, nameProvider, values);
                            apply = myDialog.showAndGet();
                            break;
                        }
                    }
                }
                if (apply && myDialog != null) {
                    //create new settings named after the file
                    final ExtractedSettingsDialog finalMyDialog = myDialog;
                    forSelection.applyConditioned(value -> finalMyDialog.valueIsSelectedInTree(value), backup);
                    CodeStyleScheme derivedScheme = CodeStyleSchemes.getInstance().createNewScheme("Derived from " + file.getName(), null);
                    derivedScheme.getCodeStyleSettings().copyFrom(cloneSettings);
                    CodeStyleSchemes.getInstance().addScheme(derivedScheme);
                    CodeStyleSchemesImpl.getSchemeManager().setCurrent(derivedScheme);
                    CodeStyleSettingsManager.getInstance(project).PREFERRED_PROJECT_CODE_STYLE = derivedScheme.getName();
                }
            }
        }
    }).setDisposable(ApplicationManager.getApplication()).setShowCallout(false).setFadeoutTime(0).setShowCallout(false).setAnimationCycle(0).setHideOnClickOutside(false).setHideOnKeyOutside(false).setCloseButtonEnabled(true).setHideOnLinkClick(true).createBalloon();
    ApplicationManager.getApplication().invokeLater(() -> {
        Window window = WindowManager.getInstance().getFrame(project);
        if (window == null) {
            window = JOptionPane.getRootFrame();
        }
        if (window instanceof IdeFrame) {
            BalloonLayout layout = ((IdeFrame) window).getBalloonLayout();
            if (layout != null) {
                layout.add(balloon);
            }
        }
    });
}
Also used : Language(com.intellij.lang.Language) IdeFrame(com.intellij.openapi.wm.IdeFrame) MessageType(com.intellij.openapi.ui.MessageType) HyperlinkEvent(javax.swing.event.HyperlinkEvent) com.intellij.psi.codeStyle(com.intellij.psi.codeStyle) VirtualFile(com.intellij.openapi.vfs.VirtualFile) CodeStyleDeriveProcessor(com.intellij.psi.codeStyle.extractor.processor.CodeStyleDeriveProcessor) LangCodeStyleExtractor(com.intellij.psi.codeStyle.extractor.differ.LangCodeStyleExtractor) Value(com.intellij.psi.codeStyle.extractor.values.Value) PsiManager(com.intellij.psi.PsiManager) Balloon(com.intellij.openapi.ui.popup.Balloon) ProcessCanceledException(com.intellij.openapi.progress.ProcessCanceledException) Task(com.intellij.openapi.progress.Task) BalloonLayout(com.intellij.ui.BalloonLayout) Map(java.util.Map) Project(com.intellij.openapi.project.Project) PsiFile(com.intellij.psi.PsiFile) DumbAware(com.intellij.openapi.project.DumbAware) PsiDocumentManager(com.intellij.psi.PsiDocumentManager) ExtractedSettingsDialog(com.intellij.psi.codeStyle.extractor.ui.ExtractedSettingsDialog) Extensions(com.intellij.openapi.extensions.Extensions) ProgressManager(com.intellij.openapi.progress.ProgressManager) HyperlinkListener(javax.swing.event.HyperlinkListener) WindowManager(com.intellij.openapi.wm.WindowManager) Editor(com.intellij.openapi.editor.Editor) java.awt(java.awt) com.intellij.openapi.actionSystem(com.intellij.openapi.actionSystem) ProgressIndicator(com.intellij.openapi.progress.ProgressIndicator) List(java.util.List) JBPopupFactory(com.intellij.openapi.ui.popup.JBPopupFactory) GenProcessor(com.intellij.psi.codeStyle.extractor.processor.GenProcessor) CodeStyleSchemesImpl(com.intellij.psi.impl.source.codeStyle.CodeStyleSchemesImpl) LanguageFormatting(com.intellij.lang.LanguageFormatting) ApplicationManager(com.intellij.openapi.application.ApplicationManager) CodeStyleSettingsNameProvider(com.intellij.psi.codeStyle.extractor.ui.CodeStyleSettingsNameProvider) ValuesExtractionResult(com.intellij.psi.codeStyle.extractor.values.ValuesExtractionResult) NotNull(org.jetbrains.annotations.NotNull) Condition(com.intellij.openapi.util.Condition) javax.swing(javax.swing) HyperlinkEvent(javax.swing.event.HyperlinkEvent) ExtractedSettingsDialog(com.intellij.psi.codeStyle.extractor.ui.ExtractedSettingsDialog) Balloon(com.intellij.openapi.ui.popup.Balloon) CodeStyleSettingsNameProvider(com.intellij.psi.codeStyle.extractor.ui.CodeStyleSettingsNameProvider) IdeFrame(com.intellij.openapi.wm.IdeFrame) BalloonLayout(com.intellij.ui.BalloonLayout) Language(com.intellij.lang.Language) HyperlinkListener(javax.swing.event.HyperlinkListener) List(java.util.List)

Aggregations

Value (com.intellij.psi.codeStyle.extractor.values.Value)10 NotNull (org.jetbrains.annotations.NotNull)4 ValuesExtractionResult (com.intellij.psi.codeStyle.extractor.values.ValuesExtractionResult)3 Language (com.intellij.lang.Language)2 Editor (com.intellij.openapi.editor.Editor)2 ProcessCanceledException (com.intellij.openapi.progress.ProcessCanceledException)2 ProgressIndicator (com.intellij.openapi.progress.ProgressIndicator)2 Task (com.intellij.openapi.progress.Task)2 Project (com.intellij.openapi.project.Project)2 VirtualFile (com.intellij.openapi.vfs.VirtualFile)2 PsiFile (com.intellij.psi.PsiFile)2 LangCodeStyleExtractor (com.intellij.psi.codeStyle.extractor.differ.LangCodeStyleExtractor)2 CodeStyleDeriveProcessor (com.intellij.psi.codeStyle.extractor.processor.CodeStyleDeriveProcessor)2 GenProcessor (com.intellij.psi.codeStyle.extractor.processor.GenProcessor)2 CodeStyleSettingPresentation (com.intellij.psi.codeStyle.presentation.CodeStyleSettingPresentation)2 List (java.util.List)2 LanguageFormatting (com.intellij.lang.LanguageFormatting)1 com.intellij.openapi.actionSystem (com.intellij.openapi.actionSystem)1 ApplicationManager (com.intellij.openapi.application.ApplicationManager)1 Extensions (com.intellij.openapi.extensions.Extensions)1