Search in sources :

Example 1 with Url

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;
}
Also used : VirtualFile(com.intellij.openapi.vfs.VirtualFile) InputStreamReader(java.io.InputStreamReader) PsiMethod(com.intellij.psi.PsiMethod) Matcher(java.util.regex.Matcher) PsiClass(com.intellij.psi.PsiClass) Url(com.intellij.util.Url) Nullable(org.jetbrains.annotations.Nullable) Nullable(org.jetbrains.annotations.Nullable)

Example 2 with Url

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();
}
Also used : JavaScriptDebugProcess(com.intellij.javascript.debugger.JavaScriptDebugProcess) XDebugSession(com.intellij.xdebugger.XDebugSession) VmConnection(org.jetbrains.debugger.connection.VmConnection) XDebugProcess(com.intellij.xdebugger.XDebugProcess) WebBrowser(com.intellij.ide.browsers.WebBrowser) XDebugProcessStarter(com.intellij.xdebugger.XDebugProcessStarter) Alarm(com.intellij.util.Alarm) NotNull(org.jetbrains.annotations.NotNull) Url(com.intellij.util.Url) DebuggableFileFinder(com.intellij.javascript.debugger.DebuggableFileFinder) JavaScriptDebugEngine(com.intellij.javascript.debugger.JavaScriptDebugEngine) NotNull(org.jetbrains.annotations.NotNull)

Example 3 with Url

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);
}
Also used : WebBrowser(com.intellij.ide.browsers.WebBrowser) RunnerAndConfigurationSettings(com.intellij.execution.RunnerAndConfigurationSettings) JavaScriptDebugConfiguration(com.intellij.javascript.debugger.execution.JavaScriptDebugConfiguration) RunManager(com.intellij.execution.RunManager) Url(com.intellij.util.Url)

Example 4 with Url

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));
    }
}
Also used : VirtualFile(com.intellij.openapi.vfs.VirtualFile) DartUrlResolver(com.jetbrains.lang.dart.util.DartUrlResolver) SmartList(com.intellij.util.SmartList) Url(com.intellij.util.Url) NotNull(org.jetbrains.annotations.NotNull)

Example 5 with Url

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;
}
Also used : VirtualFile(com.intellij.openapi.vfs.VirtualFile) File(java.io.File) Url(com.intellij.util.Url) VisibleForTesting(com.google.common.annotations.VisibleForTesting)

Aggregations

Url (com.intellij.util.Url)9 VirtualFile (com.intellij.openapi.vfs.VirtualFile)5 NotNull (org.jetbrains.annotations.NotNull)3 WebBrowser (com.intellij.ide.browsers.WebBrowser)2 SmartList (com.intellij.util.SmartList)2 Nullable (org.jetbrains.annotations.Nullable)2 VisibleForTesting (com.google.common.annotations.VisibleForTesting)1 RunManager (com.intellij.execution.RunManager)1 RunnerAndConfigurationSettings (com.intellij.execution.RunnerAndConfigurationSettings)1 DebuggableFileFinder (com.intellij.javascript.debugger.DebuggableFileFinder)1 JavaScriptDebugEngine (com.intellij.javascript.debugger.JavaScriptDebugEngine)1 JavaScriptDebugProcess (com.intellij.javascript.debugger.JavaScriptDebugProcess)1 JavaScriptDebugConfiguration (com.intellij.javascript.debugger.execution.JavaScriptDebugConfiguration)1 FileChooserDescriptor (com.intellij.openapi.fileChooser.FileChooserDescriptor)1 Module (com.intellij.openapi.module.Module)1 TextBrowseFolderListener (com.intellij.openapi.ui.TextBrowseFolderListener)1 JarFileSystem (com.intellij.openapi.vfs.JarFileSystem)1 VirtualFileSystem (com.intellij.openapi.vfs.VirtualFileSystem)1 PsiClass (com.intellij.psi.PsiClass)1 PsiMethod (com.intellij.psi.PsiMethod)1