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 { |