void (@Nullable FileLookup.LookupFile file, @NotNull DocumentOwner doc, @NotNull Finder finder, boolean nameOnly) { if (file == null) return; if (nameOnly) { try { int caretPos = doc.getCaretPosition(); if (finder.getSeparator().equals(doc.getText(caretPos, 1))) { for (; caretPos < doc.getLength(); caretPos++) { String eachChar = doc.getText(caretPos, 1); if (!finder.getSeparator().equals(eachChar)) break; } } int start = caretPos > 0 ? caretPos - 1 : caretPos; while (start >= 0) { String each = doc.getText(start, 1); if (finder.getSeparator().equals(each)) { start++; break; } start--; } int end = Math.max(start, caretPos); while (end <= doc.getLength()) { String each = doc.getText(end, 1); if (finder.getSeparator().equals(each)) { break; } end++; } if (end > doc.getLength()) { end = doc.getLength(); } if (start > end || start < 0 || end > doc.getLength()) { doc.setText(file.getAbsolutePath()); } else { replacePathComponent(file, doc, finder, caretPos, start, end); } } catch (BadLocationException e) { LOG.error(e); } } else { doc.setTextToFile(file); } }