Home Download Buy Blog Forum Support

"Open function"-functionality for Matlab plugin

"Open function"-functionality for Matlab plugin

Postby omniearth on Wed May 16, 2012 12:43 pm

Hello,

While working with Matlab files, I missed the function to open the file of a selected function. If this is already possible, I would be glad to get told how this can be done. Nevertheless, I wrote a plugin for the Matlab package, which allows to open a function according to the selection within the text. Here is the code of the file "openmatlabfunction.py", which has to be added to the Packages/Matlab folder:

Code: Select all
import sublime
import sublime_plugin
import os


class OpenmatlabfunctionCommand(sublime_plugin.TextCommand):
   def run(self, edit):

      for sels in self.view.sel():
         if sels.empty():
            fileToFind = self.view.word(sels)

         fileToFind = self.view.substr(sels)
         
         didFind = False
         fileDir = os.path.dirname(self.view.file_name())
         fileName, fileExtension = os.path.splitext(self.view.file_name());

         # traverse the directory of the current file and look for the corresponding .m file
         for fname in os.listdir(fileDir):
            tempfileName, tempfileExtension = os.path.splitext(fname);

            # if the .m file is found, open it and set syntax
            if tempfileExtension==".m" and fileToFind==tempfileName:
               didFind = True
                print "Opening "+fileToFind+tempfileExtension
                currentSyntax = self.view.settings().get('syntax')
                newView = sublime.active_window().open_file(fileToFind+tempfileExtension)
                newView.settings().set('syntax', currentSyntax)

       # if we did not find the .m file, print a message
       if not didFind:
          print "Did not find "+fileToFind+".m in current directory."
          


The plugin can easily be added to the context menu by adding the file "Context.sublime-menu" to the Packages/Matlab folder with the following content:

Code: Select all
[
    {
        "command": "openmatlabfunction",
        "caption": "Open selected Matlab function"
    }
]


Regards,
Florian
omniearth
 
Posts: 1
Joined: Wed May 16, 2012 12:35 pm

Return to Plugin Announcements

Who is online

Users browsing this forum: No registered users and 9 guests