Line Breaks and Wrapping - resharper

In my Resharper options the Right Margin was set to a low value which made my code wrapped into something like this
new Employee {
Name = "John",
Id =
(int)
EmployeeIDs.John,
Cost = 8,
Level = 0,
Type =
EmployeeType.Type1
}
However, now as i set the Right Margin "# Options -> Code Editing -> C# -> Formatting Style -> Line Breaks and Wrapping" to a high value of 300 and reformatted the code i didn't get Resharper to fix the cropped lines for me as i expected the result to be something like this
new Employee {
Name = "John",
Id = (int)EmployeeIDs.John,
Cost = 8,
Level = 0,
Type = EmployeeType.Type1
}
How could i get the above desired result ?

Please uncheck following checkbox:
ReSharper | Options | Code Editing | C# | Formatting Style | Line Breaks and Wrapping | Preserve Existing Formatting | Keep existing line breaks
Then start code cleanup once again.

Related

Controlling Inner CTabControl Items with TAB and Arrow Keys

I have an issue Controlling CTabControl Inner tab items with TAB and Arrow keys.
here is my code and a few screenshots:
OnInitDialog() method of the main dialog window:
BOOL PressetsDlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
// AUTO GENERATED MFC DIALOGUE CODE HERE
...
// ..
// TODO: Add extra initialization here
CTabCtrl* pTabCtrl = (CTabCtrl*)GetDlgItem(IDC_TAB1);
m_one.Create(IDD_TAB_ONE, pTabCtrl);
CTabCtrl* pTabCtrl2 = (CTabCtrl*)GetDlgItem(IDC_TAB1);
m_two.Create(IDD_TAB_TWO, pTabCtrl2);
TCITEM item1, item2, item3;
item1.mask = TCIF_TEXT | TCIF_PARAM;
item1.lParam = (LPARAM)&m_one;
item1.pszText = L"Normal Presets";
pTabCtrl->InsertItem(0, &item1);
item2.mask = TCIF_TEXT | TCIF_PARAM;
item2.lParam = (LPARAM)&m_two;
item2.pszText = L"Movement Presets";
pTabCtrl2->InsertItem(1, &item2);
CRect rcItem;
pTabCtrl->GetItemRect(0, &rcItem);
m_one.SetWindowPos(NULL, rcItem.left, rcItem.bottom + 1, 0, 0, SWP_NOSIZE | SWP_NOZORDER);
CRect rcItem2;
pTabCtrl2->GetItemRect(0, &rcItem2);
m_two.SetWindowPos(NULL, rcItem2.left, rcItem2.bottom + 1, 0, 0, SWP_NOSIZE | SWP_NOZORDER);
m_one.ShowWindow(SW_SHOW);
m_two.ShowWindow(SW_HIDE);
return TRUE; // return TRUE unless you set the focus to a control
}
and the OnTcnSelchangeTab method:
void PressetsDlg::OnTcnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
int nSelect = m_Tab.GetCurSel();
if (nSelect == 0)
{
m_one.ShowWindow(SW_SHOW);
m_two.ShowWindow(SW_HIDE);
}
else if (nSelect == 1)
{
m_two.ShowWindow(SW_SHOW);
m_one.ShowWindow(SW_HIDE);
}
else
{
m_one.ShowWindow(SW_SHOW);
m_two.ShowWindow(SW_HIDE);
}
*pResult = 0;
}
[to see the tab design click here](https://i.stack.imgur.com/Tt8c1.jpg)
I've set the tab order with Ctrl + D for each dialogue resource and set Tabstop property to either True or False and still nothing happens.
At first I thought that this feature is supposed to be supported automatically but it seems that it's not.
the dialogue window moves between tabs and buttons that placed on it but as soon as I try to move to "inner Items" of each tab, it doesn't reach them.
I suspect the reason is probably that each tab is a separate window and that's probably the reason that the inner items are unreachable..
I've made a few changes and now Moving with TAB and arrow keys functions properly.
first of all I set the Control Property of both child dialogs to True.
You go to Resource View >> (Solution name) >> (project name) >> IDD + (the id you gave to the dialog) doble click on it >> Properties >> Control.
Essentially what it did is to add the flag WS_CONTROL as mentioned here early to each of the Child windows so that they could be accessed from the main dialog window that contains them.
Of course that alone didn't do much because I also had a few bugs in the code, after days of searching for it I found an example online which helped me solve the bugs.
Then I've changed my code to this: and it started working:
// first we create two modeless dialogs and embed them as child windows
// of CTabControlTutorialDlg.
// Have a look using Spy++ to see the layout of the controls as they
// appear to windows
m_one.Create(IDD_TAB_ONE, this);
m_two.Create(IDD_TAB_TWO, this);
// next we get the captions of the dialogs and use these as the caption
// for the tab window. Of course we could just load a string from the
// resources or hard code a string for the text of the tab.
TCITEM item1, item2;
item1.mask = TCIF_TEXT | TCIF_PARAM;
item1.lParam = (LPARAM)&m_one;
item1.pszText = L"Normal Presets";
m_Tab.InsertItem(0, &item1);
item2.mask = TCIF_TEXT | TCIF_PARAM;
item2.lParam = (LPARAM)&m_two;
item2.pszText = L"Custom Presets";
m_Tab.InsertItem(1, &item2);
// finally we set the tab order correctly for the so that we can tab through the dialogs and into
// the cancel and ok buttons. If we don;t do this then the tab order is tab control, ok button, cancel
// button embedded dialogs.
CRect rcItem;
m_Tab.GetItemRect(0, &rcItem);
m_one.SetWindowPos(NULL, rcItem.left, rcItem.bottom + 5, 0, 0, SWP_SHOWWINDOW | SWP_NOSIZE | SWP_NOZORDER);
CRect rcItem2;
m_Tab.GetItemRect(0, &rcItem2);
m_two.SetWindowPos(NULL, rcItem2.left, rcItem2.bottom + 5, 0, 0, SWP_SHOWWINDOW | SWP_NOSIZE | SWP_NOZORDER);
m_one.ShowWindow(SW_SHOW);
I found reference in this site:https://www.codeproject.com/Articles/4408/Creating-embedded-dialogs-in-MFC but in order to get their code example you need to register to the website.
It works!

Live Template in Android Studio which centers variable and changes line length based on variable

This is somewhat of a mild OCD and obsessive optimizing question, which will probably only be of use for me.
I want to create a Live Template in Android Studio, which looks like this:
// -------------------------------------------------- \\
// -------------------------$variable$------------------------- \\
// -------------------------------------------------- \\
I want the variable bit of text to be centered, and the second line to be just as long as the other two, all done automatically. An example:
// -------------------------------------------------- \\
// ----------------- Example Title ------------------ \\
// -------------------------------------------------- \\
Is this possible with the Live Templates in Android Studio, and if so, how would that work?
Do like on image(LiveTemplateSettings). Just copy and paste:
skipIfDefined VAR4 groovyScript("new String(new char[90]).replace('\\0','-')")
VAR1 groovyScript("String x=\"yazGitsin\"; x=_1.size()>2?_1:x;return x;",VAR1)
skipIfDefined VAR2 groovyScript("String slash = new String(new char[90]).replace('\\0','-');int lenght = slash.length();int leftSize = (lenght - _1.length()) / 2;int temp=lenght-leftSize-_1.length();int rightSize=temp+(temp+leftSize+_1.length())%2;return slash.substring(0,leftSize);",VAR1)
skipIfDefined VAR3 groovyScript("String slash = new String(new char[90]).replace('\\0','-');int lenght = slash.length();int leftSize = (lenght - _1.length()) / 2;int temp=lenght-leftSize-_1.length();int rightSize=temp+(temp+leftSize+_1.length())%2;return slash.substring(0,rightSize);",VAR1)
//-$VAR4$-\\
//$VAR2$ $VAR1$ $VAR3$\\
//-$VAR4$-\\
$END$
when you are writing "lll" on intellij popup will show, enter it and write what you want.
And if you want how is it working or become more strong on live template:
https://www.jetbrains.com/help/phpstorm/2016.2/live-template-variables.html

EPPlus Barchart bars not showing colors for negative value in Excel 2013, but works fine in Excel 2007

I am using a BarClustered chart using EPPlus for Excel Package in C#. I am able to generate the bar chart as required. Only problem I am facing is that when I have a negative value, the bar does not show any color. It would be as if a transparent bar with only the border.
I am facing this issue with Excel 2013. However this works fine in Excel 2007.
ExcelWorksheet wsDataSource = xlPackage.Workbook.Worksheets.Add("DataSource");
wsDataSource.Hidden = eWorkSheetHidden.VeryHidden;
var namedStyle = xlPackage.Workbook.Styles.CreateNamedStyle("HyperLink");
namedStyle.Style.Font.UnderLine = true;
namedStyle.Style.Font.Color.SetColor(Color.Blue);
//Here I iterate through an array and populate the wsDataSource values as below starting from 3rd row:
Feb 2000 5000
March -2000 2770
April 4000 4643
var chart = worksheet.Drawings.AddChart("Chart", OfficeOpenXml.Drawing.Chart.eChartType.BarClustered);
//row is the offset int variable
chart.SetPosition(row + 2, 0, 0, 10);
chart.SetSize(750, 30);
chart.Title.Text = "Data Graph";
chart.Legend.Position = eLegendPosition.Top;
var barChart = chart as ExcelBarChart;
barChart.DataLabel.ShowValue = true;
var mySeries = chart.Series.Add(wsDataSource.Cells[3, 2, intDataRow - 1, 2], wsDataSource.Cells[3, 1, intDataRow - 1, 1]);
mySeries.Header = "Current Year";
//isPreviousYearDataAvailable is a boolean which indicates if previous year data for the user is available.
if (isPreviousYearDataAvailable)
{
var mySeries2 = chart.Series.Add(wsDataSource.Cells[3, 3, intDataRow, 3], wsDataSource.Cells[3, 1, intDataRow - 1, 1]);
mySeries2.Header = "Previous Year"
}
Below is the image I get for negative values when opening using Excel 2013.
It appears that EPPlus doesn't have support for the "invertIfNegative" tag for data series. You might have to contact the authors for help, or add in the feature yourself. The Open XML specs state that:
This element specifies the parent element shall invert its colors if the value is negative.
Also:
A value of on, 1, or true specifies that the property is applied. This is the default value for this attribute, and is implied when the parent element is present, but this attribute is omitted.
Since EPPlus doesn't render this tag, the default value is used, which is "true". The "parent element" in this case is the data series XML element. So this means colors will be inverted if the cell value is negative. Hence the transparent color you see.
I have found that different versions of Excel obey the Open XML specs slightly differently. Excel 2013 appears to obey more strictly to the Open XML specs, which is why you get a transparent color. Excel 2007 probably ignored the absent "invertIfNegative" tag (meaning if absent, you don't want to have anything to do with inverting colors and so on, and so Excel will just render the color). In this sense, Excel 2007 is more forgiving of mistakes, which may or may not be a good thing.
Adding <c:invertIfNegative val="0"/> to the XML manually seemed to work for me:
System.Xml.XmlNode invertIfNegativeNode = chart.ChartXml.CreateElement(
"c", "invertIfNegative", "http://schemas.openxmlformats.org/drawingml/2006/chart");
System.Xml.XmlAttribute invertIfNegativeAttribute = chart.ChartXml.CreateAttribute("val");
invertIfNegativeAttribute.Value = "0";
invertIfNegativeNode.Attributes.Append(invertIfNegativeAttribute);
chart.ChartXml.DocumentElement["c:chart"]["c:plotArea"]["c:barChart"]["ser"].AppendChild(invertIfNegativeNode);
Adding to this old post, I hit the same problem in Excel 2016 but was unable to resolve it with #Saxon Druce answer directly. When I examine chart1.xml behind the Excel, only ser contains invertIfNegative and setting it's val attribute to 0 does not apply to any bar (still remain inverted / transparent). When I open the file in Excel and uncheck Series Option/Invert if negative option and reopen chart1.xml, I found each and every bar dPt is inject with invertIfNegative node.
So I modified #Saxon Druce answer a bit, create and append invertIfNegative node to each bar's dPt (2nd arrow) instead of appending to parent node ser (1st arrow). Then the ExcelBarChart turns out ok with all bars colored (not inverted).
I banged my head for hours so hopefully this help someone with Excel 2016.
var nsuri = chartXml.DocumentElement.NamespaceURI;
var dPt = chartXml.CreateNode(XmlNodeType.Element, "dPt", nsuri);
var invertIfNegative = chartXml.CreateNode(XmlNodeType.Element, "invertIfNegative", nsuri);
var att = chartXml.CreateAttribute("val", nsuri);
att.Value = "0";
invertIfNegative.Attributes.Append(att);
dPt.AppendChild(invertIfNegative);
// Other xml changes
var idx = chartXml.CreateNode(XmlNodeType.Element, "idx", nsuri);
att = chartXml.CreateAttribute("val", nsuri);
att.Value = i.ToString();
idx.Attributes.Append(att);
dPt.AppendChild(idx);

ReSharper post clean-up object initializers violate StyleCop rules

After updating Resharper and StyleCop, post clean-up object initializers now look like this:
var foo = new Foo {
Bar = 1,
Baz = 2
}
How I want them to look, and how StyleCop expects them to look is:
var foo = new Foo
{
Bar = 1,
Baz = 2
}
I've been playing with the line brake and brace settings, but am not having any luck so far.
The issue was that I had line wrapping turned off, but had the chop always setting enabled for object initializers. Evidently, the chop always setting for line wrapping ignores the braces setting for object initializers.
Double check some of your settings and maybe post what you have them set to. Under:
ReSharper Settings > Code Editing > C# > Formatting Style > Braces Layout
You should check that
Array and object initializer
is set to
At next line (BSD style)
Also check your Visual Studio Settings so that
Text Editor > C# > Formatting > New Lines > New Line options for braces > Place open brace on new line for object initializers
is checked

Textmate 2 scope: Increase font size for section in latex document

Q: When editing a .tex file in Textmate 2: How can you print latex sections in a bigger font size?
I added following grammar to the Latex bundle:
{ patterns = (
{ begin = 'section\{';
end = '\}';
name = 'markup.heading.1.latex';
},
);
}
And additionally I added following Setting that is applied to the newly defined markup.heading.1.latex scope:
{ fontName = 'Baskerville';
fontSize = '2.25em';
}
The problem: it only matches sections without a leading :
... and when I change the scope definition to the following (adding \\ in front of "section"):
{ patterns = (
{ begin = '\\section\{';
end = '\}';
name = 'markup.heading.1.latex';
},
);
}
.. the scope is not applied.
Any ideas?
The answer to your question is to edit the theme bundle.
The procedure to change the appearance of section in Texmate 2 is the following:
In the Bundle editor menu, select Edit bundles ....
Then select the bundle Themes.
From menu File, select New, and when prompted select Setting
Give a name to the setting.
In the Scope Selector field use meta.function.section.latex
Then you can edit the setting, for example:
{
fontName = 'Courier';
fontSize = 36;
}
Then save (in the usual way, e.g, command-s).
You can repeat for other sectioning command (to identify the scope, move the cursor on the appropriate place and then use the following key combination control-shift-P)
answer taken from here Please give the original author credit.

Resources