src/Tools/jEdit/src/jedit_editor.scala
changeset 70016 a8142ac5e4b6
parent 69901 20b32ade0024
child 70167 b33f28c81ba9
equal deleted inserted replaced
70015:c8e08d8ffb93 70016:a8142ac5e4b6
    12 
    12 
    13 import java.io.{File => JFile}
    13 import java.io.{File => JFile}
    14 
    14 
    15 import org.gjt.sp.jedit.{jEdit, View, Buffer}
    15 import org.gjt.sp.jedit.{jEdit, View, Buffer}
    16 import org.gjt.sp.jedit.browser.VFSBrowser
    16 import org.gjt.sp.jedit.browser.VFSBrowser
       
    17 import org.gjt.sp.jedit.io.{VFSManager, VFSFile}
    17 
    18 
    18 
    19 
    19 class JEdit_Editor extends Editor[View]
    20 class JEdit_Editor extends Editor[View]
    20 {
    21 {
    21   /* session */
    22   /* session */
   153         catch {
   154         catch {
   154           case _: ArrayIndexOutOfBoundsException =>
   155           case _: ArrayIndexOutOfBoundsException =>
   155           case _: IllegalArgumentException =>
   156           case _: IllegalArgumentException =>
   156         }
   157         }
   157 
   158 
   158       case None if (new JFile(name)).isDirectory =>
       
   159         VFSBrowser.browseDirectory(view, name)
       
   160 
       
   161       case None =>
   159       case None =>
   162         val args =
   160         val is_file =
   163           if (line <= 0) Array(name)
   161           try {
   164           else if (column <= 0) Array(name, "+line:" + (line + 1))
   162             val vfs = VFSManager.getVFSForPath(name)
   165           else Array(name, "+line:" + (line + 1) + "," + (column + 1))
   163             val vfs_file = vfs._getFile((), name, view)
   166         jEdit.openFiles(view, null, args)
   164             vfs_file != null && vfs_file.getType == VFSFile.FILE
       
   165           }
       
   166           catch { case ERROR(_) => false }
       
   167 
       
   168         if (is_file) {
       
   169           val args =
       
   170             if (line <= 0) Array(name)
       
   171             else if (column <= 0) Array(name, "+line:" + (line + 1))
       
   172             else Array(name, "+line:" + (line + 1) + "," + (column + 1))
       
   173           jEdit.openFiles(view, null, args)
       
   174         }
       
   175         else VFSBrowser.browseDirectory(view, name)
   167     }
   176     }
   168   }
   177   }
   169 
   178 
   170   def goto_doc(view: View, path: Path)
   179   def goto_doc(view: View, path: Path)
   171   {
   180   {