@Override
  protected void checkStringDescriptor(Module module,
                                       final IComponent component,
                                       final IProperty prop,
                                       final StringDescriptor descriptor,
                                       final FormErrorCollector collector) {
    final String value = descriptor.getResolvedValue();
    if (value == null) {
      return;
    }
    final SpellCheckerManager manager = SpellCheckerManager.getInstance(module.getProject());
    PlainTextSplitter.getInstance().split(value, TextRange.allOf(value), textRange -> {
      final String word = textRange.substring(value);
      if (manager.hasProblem(word)) {
        final List<String> suggestions = manager.getSuggestions(word);
        if (!suggestions.isEmpty() && prop instanceof IntroStringProperty) {
          EditorQuickFixProvider changeToProvider =
            (editor, component1) -> new PopupQuickFix<String>(editor, UIDesignerBundle.message("inspection.editor.quick.fix.name"),
                                                              component1) {
              @Override
              public void run() {
                ListPopup popup = JBPopupFactory.getInstance().createListPopup(getPopupStep());
                popup.showUnderneathOf(component1.getDelegee());
              }

              @Override
              public ListPopupStep<String> getPopupStep() {
                return new BaseListPopupStep<>(UIDesignerBundle.message("popup.title.select.replacement"), suggestions) {
                  @Override
                  public PopupStep<?> onChosen(String selectedValue, boolean finalChoice) {
                    FormInspectionUtil.updateStringPropertyValue(editor, component1, (IntroStringProperty)prop, descriptor, selectedValue);
                    return FINAL_CHOICE;
                  }
                };
              }
            };
          EditorQuickFixProvider acceptProvider =
            (editor, component1) -> new QuickFix(editor, UIDesignerBundle.message("intention.name.save.to.dictionary", word), component1) {
              @Override
              public void run() {
                manager.acceptWordAsCorrect(word, editor.getProject());
              }
            };
          collector.addError(getID(), component, prop, UIDesignerBundle.message("inspection.message.typo.in.word", word), changeToProvider, acceptProvider);
        }
        else {
          collector.addError(getID(), component, prop, UIDesignerBundle.message("inspection.message.typo.in.word", word));
        }
      }
    });
  }
@Override
  protected void checkStringDescriptor(Module module,
                                       final IComponent component,
                                       final IProperty prop,
                                       final StringDescriptor descriptor,
                                       final FormErrorCollector collector)