bustasnipe

String quick select feature

7 posts in this topic

Hello I have been going to this forum regularly for a couple weeks, getting all sorts of good info from you people.

So first off thanks, you are all gentlemen/women and scholars.

I just wanted to point out that I think it would be neat if you could double click either side of the quotation marks in the Scite editor to select the string of text within. Instead of having to manually select all the text within, which is not hard, but u may sometimes miss a extra character or something. Just like how you can select variables and single words by double clicking. Thanks to all those who have worked on and continue to work on Autoit, I love it.

 

Share this post


Link to post
Share on other sites



The current suggestion I can offer as alternative is to put you caret after the start quotation mark, press Ctrl+Shift and hit the right-arrow till you are at the end quotation mark.
The other option probably is to make your own LUA functions that does this for you and assign a shortcut to it.

Jos

 

 


Visit the SciTE4AutoIt3 Download page for the latest versions        Beta files                                                          Forum Rules
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Share this post


Link to post
Share on other sites

Thanks  Jos,

The CTRL + Shift then > will go past the quotes if there is no space between the last char and the end quote.
Even though this account is  almost 6 years old, I only recently started doing anything code related so I will likely not attempt making an lua for a while yet, but I will certainly keep that in mind.

All the best,

 

Chris

 

Share this post


Link to post
Share on other sites

#5 ·  Posted (edited)

Ok, just for fun:

Add the below func to the personalTools.lua in %localappdata\AutoIt v3\SciTE

--------------------------------------------------------------------------------
-- demo() LUA script
-- to be able to use this script you add the following to your SciTEUSer.properties (without the leading "--"):
--#x lua test func
--command.name.41.$(au3)=Test
--command.mode.41.$(au3)=subsystem:lua,savebefore:no
--command.shortcut.41.$(au3)=Ctrl+Shift+F
--command.41.$(au3)=InvokeTool PersonalTools.Demo
--
--------------------------------------------------------------------------------
function PersonalTools:Demo()
    editor.SelectionStart = editor.CurrentPos
    if editor.StyleAt[editor.CurrentPos] == SCE_AU3_STRING then
        for i = editor.CurrentPos, editor.LineEndPosition[editor:LineFromPosition(editor.CurrentPos)] do
            if editor.StyleAt[i] ~= SCE_AU3_STRING then
                editor.SelectionEnd = i-1
                break
            end
        end
    end
end

.. and add the commented lines in your SciTEUser.properties and remove the " --" at the start of the lines.

Ctrl+Shift+F will select till the end of a String.

Jos

Edited by Jos

Visit the SciTE4AutoIt3 Download page for the latest versions        Beta files                                                          Forum Rules
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Share this post


Link to post
Share on other sites

This one will find the full string and you can place the caret anywhere in the literal string:

function PersonalTools:Demo()
    editor.SelectionStart = editor.CurrentPos
    if editor.StyleAt[editor.CurrentPos] == SCE_AU3_STRING then
        -- find the beginning of the string
        for i = editor.CurrentPos, editor:PositionFromLine(editor:LineFromPosition(editor.CurrentPos)),-1 do
            if editor.StyleAt[i] ~= SCE_AU3_STRING then
                editor.SelectionStart = i+2
                break
            end
        end
        -- find the end of the string
        for i = editor.CurrentPos, editor.LineEndPosition[editor:LineFromPosition(editor.CurrentPos)] do
            -- Make sure we don't count brackets in strings.
            if editor.StyleAt[i] ~= SCE_AU3_STRING then
                editor.SelectionEnd = i-1
                break
            end
        end
    end
end

Jos


Visit the SciTE4AutoIt3 Download page for the latest versions        Beta files                                                          Forum Rules
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Share this post


Link to post
Share on other sites

Jos you're the Boss, this works great, thank you!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Similar Content

    • jjohn
      By jjohn
      Hi all,
      I have the following code, basically, it populates an array with unique characters found in a string, but it turns out only one character is in the array, i don't want to think it is due to a bug of autoit at this point, so i need your help on why, please
      Dim $sx[0] Dim $cn $ss = "Xx" ConsoleWrite(StringLeft($ss, 1) & " " & StringRight($ss, 1) & @CRLF) ConsoleWrite(StringLeft($ss, 1) = StringRight($ss, 1) & @CRLF) ;here show X <> x ConsoleWrite(@CRLF) ;the following is to populate array $sx with different unique characters in $ss For $b = 1 To StringLen($ss) $flg = 0 For $a = 0 To UBound($sx) - 1 ;if asc(StringMid($ss,$b,1)) = asc($sx[$a]) Then ;if this line is used instead of the next, everything is fine If StringMid($ss, $b, 1) = $sx[$a] Then If StringMid($ss, $b, 1) = "x" Then ConsoleWrite("<<->>" & StringMid($ss, $b, 1) & " " & $sx[$a] & @CRLF) $flg = 1 ExitLoop EndIf Next If $flg = 0 Then $cn = $cn + 1 ReDim $sx[$cn] $sx[$cn - 1] = StringMid($ss, $b, 1) EndIf Next ConsoleWrite(UBound($sx) & @CRLF);list the ubound of $sx ;list what is in array $sx For $a = 0 To UBound($sx) - 1 ConsoleWrite($sx[$a] & @CRLF) Next same code in a file is attached as uniqueChar2Array.au3
    • InunoTaishou
      By InunoTaishou
      I know on other languages when you try to use a string like this
      Global $sString = "Some String" If ($sString) Then ; ... EndIf The compiler will fail because string cannot be used in an expression where it needs a bool (something along those lines). But I see instances in other languages where using $sString in an expression will work and implicitly use the length of the string (or because there is some value in that variable).
      I'm wondering why AutoIt doesn't do the same. If the $sString is used like in my example (or some other expression where it wants a bool type) implicitly use the length of the string instead of the converting to 0?
    • FrancescoDiMuro
      By FrancescoDiMuro
      Good evening
      I was looking around the forum if I could find a function that allows to convert a string into a 2 dimensional array...
      The first column of the array is always the same, but the rows could change...
      I have a pattern like:

      Column A|Column B
      Static Text 1|Data 1
      Static Text 2|Data 2
      Static Text 3|Data 3
      Static Text 4|Data 4

      Where, Static Text (1...4) will be always the same, and I don't want to change them... But, Data 1...4 are dynamic fields... So, I could have the pattern above AND I coould have the pattern I'm going to show you right below

      Column A|Column B
      Static Text 1|Data 1
      Static Text 2|Data 2
      Static Text 3|Data 3
      Static Text 4|Data 4
      Static Text 1|Data 5
      Static Text 2|Data 6
      Static Text 3|Data 7
      Static Text 4|Data 8

      How can I do in this case?

      Thanks for everyone's help


       
    • kcvinu
      By kcvinu
      Hi all,
      I have a multi dimension array with strings. Some of the strings in that array is underlined. I need to find them. I don't know how to distinguish normal string and underlined string . Thanks in advance.
    • TheDcoder
      By TheDcoder
      Hello, a while back I created ticket #3540 in the AutoIt Bug Tracker:
      I just wanted to bring it back up again for discussion here, any feedback is appreciated, what do you think about it?