So I'm pretty sure I'm using autopairs like a newb in IntelliJ.
Let's say I want to change this:
$!processed-content.process.embed-youtube;
to this:
$!processed-content.process(embed-youtube);
What I do is delete the last . and then insert a ( and the second one gets generated. So now I have this:
$!processed-content.process()embed-youtube;
So then I have to delete the second paren manually, jump to the semi and insert it.
Is there a way to move the embed-youtube bit into the parens more quickly?
Related
In a Spring Boot test written in Kotlin, I have a test method which is annotated with #Sql like this:
#Sql(statements = [
"""insert into employee (created, name)
values (current_time, 'An, Ny')""",
"""insert into shift (created, progress)
values (current_time, 80)"""
])
These are not recognized by IntelliJ as SQL and have no syntax highlighting (except that of a string). I can add a comment such as // language=sql in front of every such string. This, however, is a nuisance (it’s rather like 6 statements in reality).
I’d much prefer a single comment or annotation spanning the whole contents of the #Sql annotation, however that doesn’t seem to work: IntelliJ proposes to add #Language("SQL") in front of the whole annotation but does not recognize the contents as SQL then.
There are settings to configure the injections, even down to parameter level, however that is overwhelming. Is that even the right road, or is there something simpler?
As of IntelliJ IDEA 2019.3, the issue is partially fixed: Adding a single //language=SQL comment suffices to highlight all SQL: IDEA-158709. The annotation alone is not yet enough: IDEA-228131
The list starts empty. Then I want to append an value to it for each iteration in a loop if certain condition is met. I don't see append option in Variable Operation.
You can use string split for this, assuming you know of a delimiter that won't ever be in your list of values. I've used a semi-colon, and $local_joinedList$ starts off empty.
If (certain condition is met)
Variable Operation: $local_joinedList$;$local_newValue$ To $local_joinedList$
End If
String Operation: Split "$local_joinedList$" with delimiter ";" and assign output to $my-list-variable$
This overwrites $my-list-variable$.
If you need to append to an existing list, you can do it the same way by using String Join first, append your values to the string, then split it again afterward.
String Operation: Join elements of "$my-list-variable$" by delimiter ";" and assign output to $local_joinedList$
Lists are buggy in Automation Anywhere and have been buggy for several versions. I suggest not using them and instead use XML.
It it a much more versatile approach and allows you to do much more that with lists. You can search, filter, insert, delete etc.
For the example you mention, you would use the "Insert Node" command.
Throwing in my 2 cents as well - my-list-variable appears to be the only mutable in size list you can work with. From my experience with 10.7, it only grows though.
So if you made a list with 60 values, and you wanted to use my-list-variable again for 55, you'll need to clear out those remaining 5 values and create an if condition when looping over the list to ensure the values are not whatever you set those 5 values to be.
I used lime's answer as a reference (thanks lime!) to populate a list variable from some data in an Excel spreadsheet.
Here's my automation for it:
I was trying to make the even calculator without using code in LabVIEW but the problem was when i ran the code i get 0 between all the even numbers between 1-100.
I just want the even no in array not 0s.
What modification should i make for it.
Vivien's answer will not going to help you.
You are in right way. Just right click on the output terminal and select Conditional terminal. Remove case structure and connect your boolean line directly to the conditional terminal.
Please read here: https://zone.ni.com/reference/en-XX/help/371361J-01/lvhowto/condacc_valuesnloops/
PS. to get evens between 1-100 you should add 1 to iteration terminal (or you will have event between 0-99).
You can do something like this :
I tried to append two hash tables in velocity.
#foreach($dun1 in $dotcontent.pull("+structureName:Checnas +(conhost:fe1d98e8-9699-4f3f-abf5-a6c0afc8ab47 conhost:SYSTEM_HOST)",10,"modDate desc"))
#set($foo={
$!{dun1.mname}:$!{dun1.subname}
})
#end
In the above for each loop I am pulling content from structure "Checnas".
But at the end we can get only the last value in the content.To solve that we need to append for every iteration.I need syntax for appending hash tables.
Please help me to solve this.
Your code currently is over writing $foo each time and hence you are just getting the last value. You can use lists in velocity to achieve this.
This might work:
#set($listOfMnames=[])
#set($listOfSubNames=[])
#foreach($dun1 in $dotcontent.pull("+structureName:Checnas +(conhost:fe1d98e8-9699-4f3f-abf5-a6c0afc8ab47 conhost:SYSTEM_HOST)",10,"modDate desc"))
#set($foo=$listOfMnames.add($!{dun1.mname}))
#set($foo=$listOfSubNames.add($!{dun1.subname}))
#end
This way, you will end up with two lists 'listOfMnames' and 'listOfSubNames', both fully populated. You can later iterate through them to print/utilise their values.
This link will be helpful and tell you the purpose of using $foo which is not being used and just being assigned.
Alternatively, you can also use velocity maps with proper key/val pairs but be sure to declare it before the loop begins.
I just wanted to know how you put a cursor in a specific place in a live template for IntelliJ
For example:
# $var$ is an insance of the $objectType$ class
assert isinstance($var$, $objectType$)$END$
What happens here is that your cursor gets dragged to $var$ in the comment string first and then to your other values inside assert. What I wanted to know is how you chose where the cursor goes first.
I've read the documentation, but this is not mentioned, although a lot of other things are.
You can arrange the order that your variables are visited in. You find the information under bullet number five in this IntelliJ help document: http://www.jetbrains.com/idea/webhelp/creating-and-editing-template-variables.html
To arrange variables in the order you want IntelliJ IDEA to switch between associated input fields, use the Move Up and Move Down buttons.
Edit
You have to update the macro definition to similar to this:
# $varComment$ is an insance of the $objectTypeComment$ class
assert isinstance($var$, $objectType$)$END$
And then you define the order and expression to something like this (I didn't have any good expression for the var and orderType for you):
Since you fill in the Skip if defined for the two comment variable they will just take the values from the var and orderType and fill it in. This will do exactly what you are looking for :-)