Beyond Compare 3.3.10 ignores checkboxes for 'leading whitespace" and "embedded whitespace" - whitespace

I would expect that Beyond Compare would ignore differences based on tabs vs spaces if in the Session Settings/Importance Tab, I check the boxes labeled Leading Whitespace and Embedded Whitespace while comparing text files using the default format. Neither checked nor unchecked causes those differences to be ignored.
What am I missing?

The checkboxes there are controlling what's important to the comparison. Whitespace will be important if they're checked and unimportant if they're unchecked. They do only affect text that doesn't match something else in the grammar though. If you're comparing C++ code, for example, and the whitespace occurs at the end of a comment line it will be classified as a comment instead.
Assuming it's classified as "unimportant" correctly, BC will still show it as a difference, but will show it in blue rather than red. You can hide unimportant differences using the View->Ignore Unimportant Differences menu item, which will make them appear using the matching coloring and filter as such.
If you're still having trouble you'll have better luck getting support if you email support#scootersoftware.com or post in our support forums at http://www.scootersoftware.com/vbulletin/ with a bit more information.

Go to: Tools -> File formats -> Grammar. Add a grammar item (the +) and then mark the Regular expression check box.
There you can add a regex matching the items you want and define the severity of them.
In general, this is very useful when you have some differences that are not important to you.

Related

Beyond compare ignore one side comments

I found some instructions on how to show/hide differences in comments using beyond compare. However most of the answers show how to set comment as important text or not. That is, if a portion of code is commented on both sides then check if the comment are different or not.
I would like to ignore when only one side of the comparison is commented. In other words if I have
# # line1
# line2
on one side and
# line1
line2
I would like both lines to be marked as "unimportant differences" (if indeed the text is the same, otherwise to be marked as differences).
Beyond Compare will only compare text if it is of the same grammar element type. If one side is regular code and the other side is a comment, it will always mark it as an important difference.
To make regular text on one side and the same text commented on the other side show as a match, you'll need to edit the definition of a comment in the file format.
To edit a format, open Tools > File Formats.
Select the format that matches your files.
Go to the Grammar tab.
Select the Comment grammar element, which might be defined as # to end of line.
Click the Edit (gear) button.
Set the Category radio button to Basic.
Text matching: ^#\s
Check Regular expression.
Click OK, then Save.
The updated file format will treat # followed by a whitespace character as an unimportant comment, the remaining text in the line will be treated as regular text and compared to the other side.

how to provide ignore regex for sublimerge?

I'd like to be able to provide a regular expression for text to ignore when creating diff's with sublimerge. Is that possible?
From Borys, the author of sublimerge:
Please take a look at http://www.sublimerge.com/sm3/docs/configuration.html#default-settings-diff-algorithm - there is a „intraline_unimportant_regexps” setting that should do what you want, however this is not a live setting so it requires the diff to be re-processed.
In sublimerge3 (2?) there is a "Recompare buffers" option in the "sublimerge" section of the right click context menu (when you're viewing a diff). Also F5 will re-process the diff.
Note that at present this only changes the highlight on "unimportant" differences, they still appear when you 'go to next diff'.

Is it possible to make double space appear as tabs?

I'm working in a project that uses the standard javascript syntax. It's nice, but it uses spaces for indentation. Is there some way to make double spaces work as tabs, with the ability to set tab-space etc?
As far as I know, this is not possible. Spaces and tabs are different by nature and they're also used differently in different projects. Some projects prefer to maintain the standard of only spaces, or tab and spaces or only tabs.
What you're asking is basically: is it possible to show all letters A as a letter O?
However, something that might help for your case is automatic indentation / code beautifier. Most code editors have this feature and it basically indents your code based on a standard (which you most of the time can customize).
If you're using PHP Storm for example, the shortcut ctrl + alt + L will indent and beautify your code. On the ATOM editor you can install a package to add that feature.
Keep in mind that messing about with indentation might cause conflicts with git if you're part of a team. And, if you're part of a team it's always better to keep their standards anyway.
As a final note, spaces vs tabs is a religious war. Try to keep your team's or library standard is a good recommendation most of the time.

Notepad++ Custom Language Highlighting

I have a specific language (its private, and closed source) that I'm writing code highlighting for in Notepad++. I've never done anything like this before... so, for the most part, I'm clueless.
There are a bunch of keywords, and I've figured out how to implement those, but the strings are denoted by square brackets ([ and ]) instead of normal quotes. How do I register those as strings in the XML file?
Another thing, the language relies heavily on recursion and nesting; is there some way to say "Level 1 of the square brackets is this color, level 2 is this color, etc..."?
There's a useful help page that explains how to use the GUI to define a custom language for Notepad++. As Alex K noted in a comment above, the option for setting string delimiters appears to be in the Delimiters boxes in the Operators tab. It doesn't look like it supports different colours for different levels of nesting, though.
Update for those who have been asking the same question:
(Temporary) Documentation for custom syntax highlighting is on: http://udl20.weebly.com/index.html
There is a link to this in Notepad++ but it doesn't stand out.
I had log4net files that I wanted to view in Notepad++. They contained lines like:
2015-06-03 16:38:10,751 [Compname][Thread:29][FATAL]
To highlight [FATAL] just the keyword list wasn't enough. I added this:
On tabpage "Folder & Default" > Folding in code style 1: >
Open: [
Close: ]
On tabpage "Keyword lists" > 1ste group > FATAL with some styling.

Indenting with white spaces, tabs, and how many spaces or the tab width [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 7 years ago.
Improve this question
I know that this is more of a coding style, instead of a one right way of doing things. But, I'm a bit frustrated if I came across different indenting formats.
But, I would like to hear the reasons by various people on these issues:
Do you use spaces or tabs? Tabs with spaces? Any difference with "Tab insert space", instead of using the space key directly?
How many spaces to indent each line of code? Why?
Does different code has different style that is more suitable for each of them?
Is there a way to "visually" indent code without actually writing the indent? So it won't ruin the original indenting? It seems unlikely.
I'm using Xcode, so it's better if you have advice for Xcode projects.
You should always use the coding style that the project is already using if you are modifying an existing project.
That being said, if you are able to choose your own coding style for a new project I suggest that you use tabs to indent code and not spaces -- here is why. By using spaces you force all of the other developers working on the project to conform to your indentation preference whether that be 2 spaces or 4 or 8 (or whatever). But by using tabs each developer can view the code using their own preference. You should uses spaces and not tabs to format text (to line up variable names one per line, or to line up multi-line comments) because that will work with any tab width preference. However, when you indent code use tabs not spaces. In short, indent with tabs because indenting with spaces is rude.
spaces because they render the same everywhere
indent-width is context-dependent. runaway indentation is bad. generally, languages where you cannot easily reset the indentation to sane levels through named abstraction items (functions or methods) need narrow indentation.
yes, see previous bullet
the claim that tabs allow individual developers to use different tab widths is false. consider
typedef __LA_SSIZE_T archive_write_callback(struct archive *,
void *_client_data,
const void *_buffer,
size_t _length);
if this was produced with tabwidth of 2, it would look like this with tabwidth = 4:
typedef __LA_SSIZE_T archive_write_callback(struct archive *,
void *_client_data,
const void *_buffer,
size_t _length);
conversely, if it was produced with tabwidth = 8 and displayed with tabwidth = 4, the result would be
typedef __LA_SSIZE_T archive_write_callback(struct archive *,
void *_client_data,
const void *_buffer,
size_t _length);
so if a project style guide requires tabs and says function parameters need to align as in the first code display, then there's a single correct tab width.
(another answer presents the same argument.)
a long-overdue edit:
i wholeheartedly agree with the opening sentence of the accepted answer, which is
You should always use the coding style that the project is already using if you are modifying an existing project.
the rest of that answer is, excuse me, rubbish, and i tried to explain why above.
the question of indentation style should only come up at the very beginning of any project, once it's settled it's done. i do believe that spaces are better than tabs, and have (again, i believe) rational arguments in support of my position, etc. but i'm not going to start discussions on this topic because they're useless: most programmers i met support their preferences with irrational arguments, and the rest have settled for a style which works best with their tooling (like me: "spaces because they render the same everywhere"), which i have no influence over in general.
anecdote: i once worked on a project which underwent a change of newlines, from \r\n to \n, and it turned out to be a pain in the ass any time we needed to go past the revision in svn blame. s/newlines/indentation/, and you have a nice argument against massive indentation changes in a running project.
An advantage to spaces vs tabs is alignment when wrapping long lines. If you use tabs, no matter what you do, the lines below will most likely not align, unless the editor has the same settings.
For example:
result = variable_one + variable_two + variable_three +
variable_four;
If you use tabs, how to ensure that 'variable_four' will show up aligned if tab indentation changes?
There are different programming languages with very different syntax. The syntax is crucial in choosing a coding style. Especially the tab size (number of spaces) that you will chose will depend on how many levels you need to have. In HTML for instance there are many levels, and there it makes no sense to have a big tab size, it even makes no sense in using tabs.. you just use spaces. Another very important aspect is the IDE you use. In some IDE's you are encouraged to use tabs (in Visual Studio you have the nice facility to add/remove tabs to more than one line (TAB to add, SHIFT+TAB to remove) and so on.
Projects have different indent sizes because people use different indent settings (even in the same code) or because they use different editors or because the project includes code from other projects or even simply because people have different preferences or even different sized monitors.
I work in Visual Studio C++ and VB.NET, indent is tab based(3 lines) and tabs do not insert spaces.
I simply use the defaults of the editor I'm currently working in, but if I have the choice I use tabs because it means less invisible characters to manage. I have one editor that wholly manages indentation for me (REALbasic), another editor that manages indentation for me, allows for spaces as prefix but formatting gets wonky if I leave them in (Applescript), and there's Xcode.
I see 4 spaces more than another number for space-based indentation, so I go with that if I have to.
I've found that every community more or less has a standard that has been placed in example code, so I just go with that otherwise tabs then 4 spaces. Simple.
Honestly, I gave up on the indentation fight a long time ago and expend my brain power on other, what I feel are more important, code-related issues like good variable and functions names. Any reasonable code editor can help you manage poorly-placed or complex indentation but none of them can help with sorting out poorly-written or complex code.
Depending on your IDE and your "tab inserts spaces" option, it's a nice shortcut over using the spacebar. I.e. at 3 indentation levels with 3 spaces per tab, you press the Tab key 3 times instead of the spacebar 9 times. The net effect is the same - you inserted 9 spaces - but with 1/3 the number of keystrokes.
A benefit of using spaces instead of tabs can make printing your code a bit nicer, especially if you're using a non-typewriter style font. I usually use a width of 3 spaces for each 'level' of indentation.
Because I prefer proportional fonts at a specific 15pt size, I set a TAB to be 37 pixels.
I don't mind that you use FOUR SPACES as long as you also use a font where a SPACE is 37/4 pixels wide. Or TWO SPACES as long as you also use a font where a SPACE is 37/2 pixels. Or even THREE SPACES, as long as you also use a font where a SPACE is 37/3 pixels.
Otherwise, a TAB works great for both us.

Resources