use of com.intellij.util.Url in project intellij-community by JetBrains.
the class JavaDocExternalFilter method getExternalDocInfoForElement.
@Override
@Nullable
public String getExternalDocInfoForElement(@NotNull String docURL, final PsiElement element) throws Exception {
String externalDoc = null;
myElement = element;
String projectPath = "/" + myProject.getName() + "/";
String builtInServer = "http://localhost:" + BuiltInServerOptions.getInstance().getEffectiveBuiltInServerPort() + projectPath;
if (docURL.startsWith(builtInServer)) {
Url url = Urls.parseFromIdea(docURL);
VirtualFile file = url == null ? null : WebServerPathToFileManager.getInstance(myProject).findVirtualFile(url.getPath().substring(projectPath.length()));
if (file != null) {
InputStreamReader reader = new InputStreamReader(file.getInputStream(), StandardCharsets.UTF_8);
StringBuilder result = new StringBuilder();
try {
doBuildFromStream(docURL, reader, result);
} finally {
reader.close();
}
externalDoc = correctDocText(docURL, result);
}
}
if (externalDoc == null) {
externalDoc = super.getExternalDocInfoForElement(docURL, element);
}
if (externalDoc == null) {
return null;
}
if (element instanceof PsiMethod) {
final String className = ApplicationManager.getApplication().runReadAction(new NullableComputable<String>() {
@Override
@Nullable
public String compute() {
PsiClass aClass = ((PsiMethod) element).getContainingClass();
return aClass == null ? null : aClass.getQualifiedName();
}
});
Matcher matcher = ourMethodHeading.matcher(externalDoc);
StringBuilder buffer = new StringBuilder("<h3>");
DocumentationManager.createHyperlink(buffer, className, className, false);
return matcher.replaceFirst(buffer.append("</h3>").toString());
}
return externalDoc;
}
use of com.intellij.util.Url in project intellij-plugins by JetBrains.
the class KarmaDebugProgramRunner method createDescriptor.
@NotNull
private static RunContentDescriptor createDescriptor(@NotNull ExecutionEnvironment environment, @NotNull ExecutionResult executionResult, @NotNull KarmaConsoleView consoleView, @NotNull KarmaServer karmaServer, @NotNull DebuggableWebBrowser debuggableWebBrowser) throws ExecutionException {
Url url = Urls.newFromEncoded(karmaServer.formatUrl("/"));
DebuggableFileFinder fileFinder = getDebuggableFileFinder(karmaServer);
XDebugSession session = XDebuggerManager.getInstance(environment.getProject()).startSession(environment, new XDebugProcessStarter() {
@Override
@NotNull
public XDebugProcess start(@NotNull XDebugSession session) {
JavaScriptDebugEngine debugEngine = debuggableWebBrowser.getDebugEngine();
WebBrowser browser = debuggableWebBrowser.getWebBrowser();
JavaScriptDebugProcess<? extends VmConnection> debugProcess = debugEngine.createDebugProcess(session, browser, fileFinder, url, executionResult, true);
debugProcess.addFirstLineBreakpointPattern("\\.browserify$");
debugProcess.setElementsInspectorEnabled(false);
debugProcess.setConsoleMessagesSupportEnabled(false);
debugProcess.setLayouter(consoleView.createDebugLayouter(debugProcess));
Alarm alarm = new Alarm(Alarm.ThreadToUse.POOLED_THREAD, consoleView);
alarm.addRequest(() -> {
resumeTestRunning(executionResult.getProcessHandler());
Disposer.dispose(alarm);
}, 2000);
return debugProcess;
}
});
return session.getRunContentDescriptor();
}
use of com.intellij.util.Url in project intellij-plugins by JetBrains.
the class DartProjectTemplate method createWebRunConfiguration.
static void createWebRunConfiguration(@NotNull final Module module, @NotNull final VirtualFile htmlFile) {
DartModuleBuilder.runWhenNonModalIfModuleNotDisposed(() -> {
final WebBrowser dartium = DartiumUtil.getDartiumBrowser();
if (dartium == null)
return;
final Url url = WebBrowserServiceImpl.getDebuggableUrl(PsiManager.getInstance(module.getProject()).findFile(htmlFile));
if (url == null)
return;
final RunManager runManager = RunManager.getInstance(module.getProject());
try {
final RunnerAndConfigurationSettings settings = runManager.createRunConfiguration("", JavascriptDebugConfigurationType.getTypeInstance().getFactory());
((JavaScriptDebugConfiguration) settings.getConfiguration()).setUri(url.toDecodedForm());
((JavaScriptDebugConfiguration) settings.getConfiguration()).setEngineId(dartium.getId().toString());
settings.setName(((JavaScriptDebugConfiguration) settings.getConfiguration()).suggestedName());
runManager.addConfiguration(settings, false);
runManager.setSelectedConfiguration(settings);
} catch (Throwable t) {
/* ClassNotFound in IDEA Community or if JS Debugger plugin disabled */
}
}, module);
}
use of com.intellij.util.Url in project intellij-plugins by JetBrains.
the class DartFileUrlMapper method getUrls.
@NotNull
@Override
public List<Url> getUrls(@NotNull final VirtualFile file, @NotNull final Project project, @Nullable final String currentAuthority) {
if (currentAuthority == null || file.getFileType() != DartFileType.INSTANCE)
return Collections.emptyList();
if (Registry.is("dart.redirect.to.pub.server", true) && ProjectFileIndex.getInstance(project).isInContent(file)) {
final Pair<VirtualFile, String> servedDirAndPath = PubServerPathHandlerKt.getServedDirAndPathForPubServer(project, file);
if (servedDirAndPath != null) {
final VirtualFile servedDir = servedDirAndPath.first;
final String path = servedDirAndPath.second;
final String pubAuthority = BuiltInServerManagerImpl.isOnBuiltInWebServerByAuthority(currentAuthority) ? PubServerManager.getInstance(project).getPubServerAuthorityForServedDir(servedDir) : currentAuthority;
if (pubAuthority != null) {
return Collections.singletonList(Urls.newHttpUrl(pubAuthority, path));
}
}
}
final DartUrlResolver urlResolver = DartUrlResolver.getInstance(project, file);
final String dartUri = urlResolver.getDartUrlForFile(file);
if (!dartUri.startsWith(PACKAGE_PREFIX))
return Collections.emptyList();
if (BuiltInServerManagerImpl.isOnBuiltInWebServerByAuthority(currentAuthority)) {
final List<Url> result = new SmartList<>();
final VirtualFile pubspec = urlResolver.getPubspecYamlFile();
final VirtualFile dartRoot = pubspec != null ? pubspec.getParent() : null;
if (Registry.is("dart.redirect.to.pub.server", true)) {
// package:PackageName/subdir/foo.dart -> http://localhost:45455/packages/PackageName/subdir/foo.dart
final Collection<String> authorities = dartRoot != null ? PubServerManager.getInstance(project).getAlivePubServerAuthoritiesForDartRoot(pubspec.getParent()) : PubServerManager.getInstance(project).getAllAlivePubServerAuthorities();
for (String pubAuthority : authorities) {
final String pubUrlPath = "/packages/" + dartUri.substring(PACKAGE_PREFIX.length());
result.add(Urls.newHttpUrl(pubAuthority, pubUrlPath));
}
} else if (dartRoot != null) {
// for built-in server:
// package:PackageName/subdir/foo.dart -> http://localhost:63342/ProjectName/MayBeRelPathToDartProject/web/packages/PackageName/subdir/foo.dart
final String dartRootUrlPath = WebServerPathToFileManager.getInstance(project).getPath(dartRoot);
if (dartRootUrlPath == null)
return Collections.emptyList();
//BuiltInWebBrowserUrlProviderKt.getBuiltInServerUrls(pubspec, project, currentAuthority);
final Url dartRootUrl = Urls.newHttpUrl(currentAuthority, "/" + project.getName() + "/" + dartRootUrlPath);
final String urlPath = StringUtil.trimEnd(dartRootUrl.getPath(), "/") + "/web/packages/" + dartUri.substring(PACKAGE_PREFIX.length());
result.add(Urls.newHttpUrl(currentAuthority, urlPath));
}
return result;
} else {
// for any other server (e.g. localhost:8181):
// package:PackageName/subdir/foo.dart -> http://localhost:8181/packages/PackageName/subdir/foo.dart
final String urlPath = "/packages/" + dartUri.substring(PACKAGE_PREFIX.length());
return Collections.singletonList(Urls.newHttpUrl(currentAuthority, urlPath));
}
}
use of com.intellij.util.Url in project flutter-intellij by flutter.
the class FlutterSdkUtil method parseFlutterSdkPath.
@VisibleForTesting
public static String parseFlutterSdkPath(String packagesFileContent) {
for (String line : packagesFileContent.split("\n")) {
// flutter:file:///Users/.../flutter/packages/flutter/lib/
line = line.trim();
if (line.isEmpty() || line.startsWith("#")) {
continue;
}
final String flutterPrefix = "flutter:";
if (line.startsWith(flutterPrefix)) {
final String urlString = line.substring(flutterPrefix.length());
if (urlString.startsWith("file:")) {
final Url url = Urls.parseEncoded(urlString);
if (url == null) {
continue;
}
final String path = url.getPath();
// go up three levels
final File file = new File(url.getPath());
return file.getParentFile().getParentFile().getParentFile().getPath();
}
}
}
return null;
}
Aggregations