package requirejs; import com.intellij.ide.BrowserUtil; import com.intellij.psi.PsiElement; import com.intellij.psi.impl.FakePsiElement; public class PsiUriElement extends FakePsiElement { protected String originalUri; protected PsiElement parent; public PsiUriElement(PsiElement parent, String uri) { this.originalUri = uri; this.parent = parent; } protected String getNormalizedUri() { String normalizedUri = this.originalUri; if (normalizedUri.startsWith("/")) { normalizedUri = "http:".concat(this.originalUri); } if (!normalizedUri.endsWith(".js")) { if (!normalizedUri.contains("?")) { normalizedUri = normalizedUri.concat(".js"); } } return normalizedUri; } @Override public PsiElement getParent() { return this.parent; } @Override public String getName() { return this.getNormalizedUri(); } @Override public void navigate(boolean b) { BrowserUtil.browse(this.getNormalizedUri()); } @Override public String getPresentableText() { return this.getNormalizedUri(); } }