Wednesday, August 22, 2012

Matrixify 1.1

May Allah`s peace , mercy and blessing be upon you

Update : Matrixify now on Sublime Package Control.

Matrixify gets it's first update .. Oh Yeah !! :P , Seriously just a little update. I am new to Python and Sublime Text 2 plugins development but I used enough plugins to make me have the hunch that the method I'm using to read the format is not the genius one !!

I am lazy to look for solution so I asked on the ST2 forum and facelessuser answered : Sublime have an input form that prompt so it's a logical choice.

Another thing that come up is the indexes that I used for my arrays to output the matrix become much easier to calculate when the lines 0 is included.
output += separators[i%dim] + line + (lengths[(i%dim)] - len(line))*" "
if (i%dim) == dim-1:
    output += separators[dim] + "\n"

The full new code using show_input_panel :
import sublime, sublime_plugin

class MatrixifyCommand(sublime_plugin.TextCommand):
 def run(self, edit):
  def on_done(input):
   sels = self.view.sel()
   for sel in sels:
    lines = []
    separators = []
    lengths = []
    dim = 0
    lines = self.view.substr(sel)
    lines = lines.splitlines()
    lines = filter(None, lines)
    lines = [i.strip() for i in lines]
    separators = input.split('%')
    dim = len(separators) - 1
    lengths = [0] * dim
    for i in range(dim):
     for l in range(i,len(lines)-1,dim):
      lengths[i] = max(lengths[i] , len(lines[l]))
    output = ""
    for i in range(0,len(lines)):
     line = lines[i]
     output += separators[i%dim] + line + (lengths[(i%dim)] - len(line))*" "
     if (i%dim) == dim-1:
      output += separators[dim] + "\n"
    self.view.replace(edit, sel, output)

  self.view.window().show_input_panel("Enter matrix format", "", on_done, None, None)

Repository on github try it , fork it , develop it.

No comments:

Post a Comment


Zoli Issam's blog proudly powered by Blogger | All rights reserved Jaw,B 2010-2013