2014-04-14 53 views
4

在我的項目中,我有一個特殊的JSP,它在異常情況下顯示異常堆棧跟蹤。在Eclipse中通過URL處理程序打開文件

有沒有一種方法可以使用URL處理程序或其他可以讓Eclipse打開文件的東西?也許與xdg-open

我在Kubuntu Linux上使用Eclipse 4.3。

+0

的TeamCity的插件做到這一點不知。我想你可以編寫一個eclipse插件,在端口9998上啓動一個微型Web服務器,然後當你嘗試加載一個像localhost:9998:///path/to/file.ext:66這樣的URL時,它會發送一個虛擬響應,並將在eclipse中打開文件(也許它也可以激活窗口)。查看play的開發錯誤頁面,該鏈接可以將目標設置爲隱藏的iframe。 – nafg

回答

0

我已經結束了與此解決方案:

  1. 編輯xdebug.ini(應該是這樣/etc/php/7.0/mods-available/xdebug.ini的地方),地址:

    xdebug.file_link_format="xdebug://%f(%l)" 
    

    重新啓動服務器或PHP-FPM。對於Ubuntu上的Apache,使用sudo service apache2 restart

  2. 創建eclipse-launch.sh。它旨在解析URL並將文件傳遞給Eclipse。你可以根據你的需要命名它,並把它放在你想要的任何地方,我已經把它放在eclise目錄中。一定要與實際日食路徑替換/home/user與您的實際主目錄和path="..."

    #! /bin/bash 
    
    arg=$1 
    path="/home/user/eclipse/eclipse-neon/" 
    
    # file name directly followed by a line number in parenthesis 
    regex="//([^(]*)\(([0-9]+)\)" 
    
    if [[ $arg =~ $regex ]] 
    then 
        file=${BASH_REMATCH[1]} 
        line=${BASH_REMATCH[2]} 
        $path/eclipse --launcher.openFile "$file"+"$line" 
    else 
        msg="Unsupported URL: $arg" 
        zenity --info --text="$msg" 
    
        # alternatives: 
        # notify-send "$msg" # another notification program 
        # $path/eclipse # just run eclipse 
    fi 
    

    瞭解更多關於Eclipse的命令行選項,在這裏:http://help.eclipse.org/mars/index.jsp?topic=/org.eclipse.platform.doc.isv/guide/product_open_file.htm

  3. 給文件可執行權限:chmod +a eclipse-launch.sh

  4. 創建xdebug.desktop~/.local/share/applications/。它將被xdg-open使用(Chrome默認使用xdg-open)。

    [Desktop Entry] 
    Comment= 
    Exec=/home/user/eclipse/eclipse-neon/eclipse-launch.sh "%u" 
    Icon=/home/user/eclipse/eclipse-neon/eclipse/icon.xpm 
    Name=Eclipse xdebug Launch 
    NoDisplay=false 
    StartupNotify=true 
    Terminal=0 
    TerminalOptions= 
    Type=Application 
    MimeType=x-scheme-handler/xdebug; 
    
  5. 運行xdg-mime default xdebug.desktop x-scheme-handler/xdebug。這應該添加一個條目到~.local/share/applications/mimeapps.list[Default Applications]部分。該條目本身應該像x-scheme-handler/xdebug=xdebug.desktop

  6. 對於Firefox遵循這裏說明:https://xdebug.org/docs/all_settings#file_link_format

    • 打開about:config
    • 您單擊添加一個新的布爾設置network.protocol-handler.expose.xdebug並將其設置爲false
    • 第一次在xdebug:///鏈接上Firefox會提示你選擇一個應用程序運行,指向創建的eclipse-launch.sh文件。