• Login
Community
  • Login

Simple Templates

Scheduled Pinned Locked Moved General Discussion
10 Posts 4 Posters 24.1k Views
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • L
    lawriehodges
    last edited by Oct 7, 2016, 6:05 PM

    For the past few years I have been using an old text editor PFE (Programmer’s File Editor) and have found it fairly satisfactory despite its age. However, recently I have turned to experiment with Notepad++. I miss PFE’s multiple windows (rather than tabs but that is merely a matter of familiarity) but what I mainly miss is the ability to create and insert Templates. One can do it by cutting and pasting from a template file but is there a more straightforward method? What do the rest of you do?

    C 1 Reply Last reply Oct 7, 2016, 9:53 PM Reply Quote 0
    • C
      Claudia Frank @lawriehodges
      last edited by Oct 7, 2016, 9:53 PM

      @lawriehodges
      there are plugins like snippet, snippet plus, finger text … available which
      can be used to achieve this as long as you are using the 32bit version of npp.

      I (is it I or is it me - I always get confused about this) personally use python script
      which loads a file with the snippets as a dictionary.

      Cheers
      Claudia

      S L 3 Replies Last reply Oct 8, 2016, 12:11 AM Reply Quote 0
      • S
        Scott Sumner @Claudia Frank
        last edited by Oct 8, 2016, 12:11 AM

        @Claudia-Frank

        It’s “I”…I’ve been taught to follow this simple rule:
        The correct one is the one that sounds right:
        “Me personally use pythonscript which loads…” – NOPE!
        “I personally use pythonscript which loads…” – YES!
        I think you know more about it than you realize, as you didn’t say “Me always get confused about this”!

        Can you give an example of how you use pythonscript with the snippets file?

        C 2 Replies Last reply Oct 8, 2016, 1:45 AM Reply Quote 0
        • C
          Claudia Frank @Scott Sumner
          last edited by Claudia Frank Oct 8, 2016, 1:46 AM Oct 8, 2016, 1:45 AM

          Hi Scott,

          The correct one is the one that sounds right:

          :-) for a native speaker this might be true but for a foreigner … :-)
          I can’t really recall what my English teacher told me about that but
          I have something in my mind that there were some rules about when using
          me and I - something like if an adverb is followed than it is “I” but if the pronoun
          is after the adverb than it is me - as said - too long ago - can’t really remember.

          In regards to the snippet script. It isn’t something fancy.
          The script itself

          _g = globals()
          if not _g.get('SNIPPET_LOADED'):
              snippet_dict = {}
              snippet_file = r'FULL_FILE_PATH'
              with open(snippet_file, 'rb') as f:
                  key = None
                  for line in f:
                      pos = line.find('::')
                      if ( pos > -1) :
                          if key is None:
                              key = line[:pos]
                              value = line[pos+2:]
                          else:
                              snippet_dict[key] = value
                              key = line[:pos]
                              value = line[pos+2:]
                      else:
                          value += line 
                  snippet_dict[key] = value
              SNIPPET_LOADED = True
              
          curpos = editor.getCurrentPos()               
          editor.setTargetEnd(curpos)
          snippet = editor.getWord()
          len_word = len(snippet)
          editor.setTargetStart(curpos-len_word)
          replacement = snippet_dict.get(snippet)
          
          if replacement:
              length = editor.replaceTarget(replacement)
              curpos = editor.getCurrentPos() 
              editor.gotoPos(curpos+length)
          

          and a text file like

          utf8::#!/usr/bin/env python
          # -*- coding: utf-8 -*-
          main::if __name__ == '__main__':
              pass
          miniapp::if __name__ == '__main__':
              class DemoFrame(wx.Frame):
                  def __init__(self, *args, **kwargs):
                      super(DemoFrame, self).__init__(*args, **kwargs)
                      self.Show()
          
          
              app = wx.App(redirect=False)
              DemoFrame(None, wx.ID_ANY, title='Test', size=(300, 200))
              app.MainLoop()
              app = None
          

          Assign a shortcut to the script and type
          utf8
          in the editor, press shortcut and utf8 gets replaced by the text
          #!/usr/bin/env python
          # -- coding: utf-8 --

          I’ve put this into startup script and to prevent that it reads the file everytime
          you want to use a snippert I check if SNIPPET_LOADED is true.
          If you update your snippet file, set the variable through the console to False.

          Cheers
          Claudia

          1 Reply Last reply Reply Quote 0
          • C
            Claudia Frank @Scott Sumner
            last edited by Oct 8, 2016, 2:02 AM

            @Scott-Sumner

            and because I forget what keys I’ve used I created a little shortcut
            which is also in the startup.py

            sd = lambda: console.write('\n'.join(snippet_dict.keys()))
            

            So I just have to remember that I need to run sd() in the console :-)

            Cheers
            Claudia

            1 Reply Last reply Reply Quote 0
            • S
              Scott Sumner
              last edited by Oct 8, 2016, 2:47 AM

              Oh, okay, I get it now…a quick custom snippets thingy… From your reply to the OP, I thought maybe it was something different, that integrated with the real snippets plugins that you mentioned somehow. But…I like it! Sometimes a real plugin is “too heavy” and a simpler pythonscript is just right! :)

              It is interesting, your use of _g = globals() at the top. I do a similar thing this way:

              try:
                  something_loaded
              except NameError:
                  something_loaded = False   
              
              if not something_loaded:
                  #....do one-time init here...
                  something_loaded = True
              

              I guess whatever gets the job done! :)

              Sometimes pythonscript requires a bit of non-conventional python thinking, because when pythonscripts end their objects and functions live on, unlike a real python program that is simply gone from memory when it ends.

              C 1 Reply Last reply Oct 13, 2016, 11:55 PM Reply Quote 1
              • L
                lawriehodges @Claudia Frank
                last edited by Oct 9, 2016, 1:26 PM

                @Claudia-Frank
                Thanks for your reply. I’ve loaded the 32 bit version Npp++ and the snippets++ plugin. I have still to experiment.

                1 Reply Last reply Reply Quote 0
                • L
                  lawriehodges @Claudia Frank
                  last edited by Oct 9, 2016, 3:46 PM

                  @Claudia-Frank
                  Thanks, once again. It seems that FingerText will do what I want.

                  Incidentally:

                  I (is it I or is it me - I always get confused about this) personally use python script . . .
                  It should be ‘I’, since it is the subject of ‘use’. The presence of ‘personally’ (which many would regard as superfluous) does not affect this.

                  Regards,
                  Lawrie

                  1 Reply Last reply Reply Quote 0
                  • C
                    Claudia Frank @Scott Sumner
                    last edited by Oct 13, 2016, 11:55 PM

                    Hello Scott,

                    sorry for late response - really busy at the moment.
                    Yeah, it is just another snippet solution :-)
                    and even when I love python, and I use it as main programming/scripting language at the moment,
                    I still don’t be that pythonic as I should be ;-)
                    Your solution looks more like python way than mine.

                    Cheers
                    Claudia

                    1 Reply Last reply Reply Quote 0
                    • Ethan PiliavinE
                      Ethan Piliavin
                      last edited by May 14, 2017, 1:38 PM

                      I created this tool so that I could have an editor independent popup with the snippets I use in any software.

                      https://github.com/ethanpil/snips

                      1 Reply Last reply Reply Quote 0
                      • First post
                        Last post
                      The Community of users of the Notepad++ text editor.
                      Powered by NodeBB | Contributors