How to change every other blank space to tab in vs code - visual-studio-code

Let say I have a text like this
> Name
>
> Peak
>
> Surname
>
> Sornpaisarn
But I want the whole document to be written like this
Name Peak
Surname Sornpaisarn
So for the odd blank space, I want to change to tab. For the even blank space I want to delete it. Are there anything in vs code that can do that?

Make sure the final line is just >, so that the final key-space-value-space chunk is the same as the others
Make a backup copy of your page. If the edit ruins it, you can replace it and try something else
Choose "Replace" from the Edit menu
in the find/replace dialog, click the little .* box to turn on regular expressions
in the top (find) box, enter >\s([^\n]+)\n>\n>\s([^\n]+)\n>
in the bottom (replace with) box, enter $1\t$2
click in front of the first character in the file so you'll start the conversion there
click the little "replace" or "replace all" buttons (little b -> c icons to the right of the "replace with" text)

Related

Replace row header with images

I am working on a worksheet which has long header names. I want to display table compactly using icon images instead of using header labels. Say I have a column named "Population Density" in a table. I would like a population icon to show up instead of full label.
Probably the closest you could come with this is using Unicode Emoji in a column alias.
For measure values, right click the header and click "Edit Alias", then paste the unicode emoji into the text box.
For dimensions, right click the pill and click "Edit in Shelf". Move the cursor to the beginning of the line and press Shift+Enter to add a new line above, then press the up arrow. Type // on the new line, paste the selected unicode emoji, and hit Enter.

What's this box around my function input?

Whenever I write an auto-completed function call and start typing something, a black rectangle is drawn around the input, like below:
Why does eclipse do this and how can I turn it off? I've looked the different editor settings but I haven't found anything that describes this behavior.
This is called place holder. Keep caret anywhere in between the class methods and inside the class body and type public and press Ctrl + Space and select public_method option. Then you will get a template looks like this:
Here return_type is covered with rectangle and highlighted this means you can type the return type as void, int etc and this will appear in this rectangle box.
Use TAB key to traverse next place holders i.e name is also covered with rectangle box. After typing the return type when you press TAB key you will jump to next place holder(i.e name).
You can go back to the previous place holder by pressing Shift + TAB key. Green color caret represent the end of place holders.
While you are in any place holder if you press Enter key you will be directly taken to the end of the place holder(i.e green caret).
Check the template grammar for public_method template here Windows > Preferences > Java > Editors > Templates
It looks as
public ${return_type} ${name}(${}) {
${cursor}
}
You can edit this. If you remove ${cursor} then green colour caret will not appear and so on.
You can turn if off by
Deleting template(Not recommended)
Editing template grammer
Or just by pressing Enter key(Recommended)
Also check the grammar of static_final template. Here you will get the drop down menu along with rectangular box.

Convert Tabs-as-spaces width

I have many source code files which are idented with 8 space characters, I want to convert these to 4 character indents. What is the best way of doing this? A technique using eclipse would be preferable.
Select the project(s), then press Ctrl+H to open the Search dialog (or click the Search > File menu).
Make sure the File Search tab is selected at the top.
Enter 8 spaces into the Containing text: field
Select your File name pattern (probably *.java or just *)
Select the scope (probably Selected Resources)
Press the *Replace... button.
As I said in the comments above, however, using spaces for indentation is a fool's game; tabs are the proper abstraction for indentation so that you don't have this problem.

How to search and replace 2 lines (together) in Eclipse?

I would like to search multiple files via eclipse for the following 2 lines:
#Length(max = L_255)
private String description;
and replace them with these two:
#Length(max = L_255, message="{validator.description.len}")
private String description;
Another tip on how to get the regex for a selected block.
Open one of the files that contains the multiple lines (multiline) to search or replace.
Click Ctrl+F and select "Regular expression". Close the Find/Replace window.
Select the block you need and click again Ctrl+F to open the Find/Replace window.
Now in the Find text box you have the regular expression that exactly matches your selection block.
(I discovered this, only after creating manually a regexp for very long block :)
Search are multi-line by default in Eclipse when you are using regex:
(\#Length\(max = L_255)\)([\r\n\s]+private)
I would like to add "private String description;"
(\#Length\(max = L_255)\)([\r\n\s]+private\s+?String\s+description\s*?;)
replaced by:
\1, message="{validator.description.len}")\2
It works perfectly in a File Search triggered by a CTRL-H.
As mentioned in Tika's answer, you can directly copy the two lines selected in the "Containing Text" field: those lines will be converted as a regexp for you by Eclipse.
CTRL+H does take two lines if you use regexp (and you don't have to write the regexp by yourself, eclipse does that for you).
Select your lines.
Click CTRL+H. The search dialog opens up.
If "Regular expression" is already checked, eclipse will have converted the two lines you search for into regexp for you, click Search.
If "Regular expression" if not already checked", check it and click Cancel (eclipse remembers your choice).
Select your lines again.
Click CTRL+H. The search dialog opens up. This time "Regular expression" is already selected. eclipse will have converted the two lines you search for into regexp for you, click Search.
A quick tip for including multiple lines as part of a manually constructed regular expression:
Where you would normally use .* to match any character zero or more times, instead consider using something like (?:.|\r?\n)*. Or put an extra ? at the end to make it non-greedy.
Explanation: . doesn't match new lines so need to do an "either-or": The parentheses match either the . before the pipe or the new line after it. The ? after \r makes the carriage return before the line feed optional to allow Windows or Unix new lines. The ?: excludes the whole thing as a capturing group (which helps to avoid a stack overflow).
Click Ctrl + F and select "Regular Expression" and then search the lines. In case to perform the same on multiple files, click Ctrl + H, click on 'File Search' and perform the same.
Select the folder that contains all your files and press Ctrl+H.

Is there an Eclipse line-width marker?

I have a specific project where I need to wrap every code line at 65 characters. I have set up the eclipse Java code formatter properly for this. But what I really want is a vertical line to be drawn in the editor showing where the max line width while I am typing, not just when I run the formmater. I know this feature is available in some capacity because it is displayed in the code formatter property page.
I don't see any option in eclipse to turn this on and I didn't see any plug-ins that do it on Eclipse Plugin Central
Look in Windows / Preferences (at least on Windows - IIRC it moves around for different operating systems) then:
General -> Editors -> Text Editors -> Show Print Margin
Tick this and it should show the line.
As a quick way of finding this, use the search filter in the top and filter on "margin".
Notes from the comments - unverified by me, but I have no reason to doubt them:
It has changed somehow in 2016: For details see [here] (https://bugs.eclipse.org/bugs/show_bug.cgi?id=495490#c2) You have to set it in the formatter: From menu [Window]-->[Preferences], select [Java]-->[Code Style]-->[Formatter], and then edit your formatter profile. In the tab page [Line wrapping], you can find a setting named "Maximum line width". Change this setting, and the print margin in Java source editor will be changed too.
In Eclipse Luna (4.4):
Choose menu Window\Preference . Look at top-left corner, in search box type filter text, type: margin.
In section Apperance color option, Choose Print margin. Choose Show print margin. In text box Print margin column , type 65 as what you want.
#Jon Skeet's answer is incomplete.
(1/2) First, do what he said:
Window --> Preferences --> General --> Editors --> Text Editors --> check the box for Show Print Margin
Ticking this box will show the vertical line.
As a quick way of finding this, use the search filter in the top and filter on "margin".
However, this only shows the line, but under most situations the "Print margin column" value there is flat-out ignored.
To set the column number for where the line should be, do what #John Percival Hackworth mentions here:
(2/2) Go to:
Window --> Preferences --> C/C++ [or whatever language you are using] --> Code Style --> Formatter --> click Edit --> under the Line Wrapping tab set the value you desire for Maximum line width.
Side note:
Use Alt + Shift + Y to toggle soft line wrapping on and off. It will soft wrap (ie: no carriage return) at the end of the screen, however, not at the column you set above.
How do you enforce hard line wrapping at the column you set above (ie: that adds a carriage return)? I don't know yet. If you figure it out let me know. In Sublime Text 3 (a much better editor but with a much worse indexer/function definition finder :() it's Alt + Q.
Update: I think it may be possible with the "CppStyle" plugin, which uses clang-format, by using Ctrl + Shift + F to apply the auto-format, but I don't know the exact instructions to make it work yet.
Related:
Set tab width: Changing editor tab width in eclipse 3.5
After some months with Espressif, but also with other brands plugged-in Eclipse, I found how to enlarge maximum line width. I made a lot of attempts and show how to do for Espressif-IDE:
Right click a project->properties->C/C++ General->Formatter
->Enable Project specific settings->
New->Give your profile a name and base it on a built-in formatter: I choose BSD/Allman->Edit this new profile->within Line Wrapping tab type for example 200 for Maximum line width->Apply changes.
Format source files: you'll have long lines.
Before I did the same manouvres starting from:
Window->Preferences->C/C++->code Style->Formatter... : that never worked.