Bug reports are appreciated. Following a few guidelines listed below will help speed up the process of getting them fixed.
- Search the issue tracker to see if it has already been reported.
- Disable your plugins to see if one of them is the problem. You can do this by renaming your
plugins
folder to something else. - Only report an issue with a plugin if it is one of the standard plugins included in the Notepad++ installation. Any other plugin issue should be reported to its respective issue tracker. The standard plugins include (for v6.8.3):
- NppFTP
- NppExport
- Plugin Manager
- Converter
- mimeTools
- Include additional information such as:
- A detailed explanation
- Operating System version
- Notepad++ version
- List of installed plugins (if it is related to a plugin)
- Screen shots (if applicable)
- ...and any other relevant information
Your pull requests are welcome; however, they may not be accepted for various reasons. If you want to make some GUI enhancement like renaming some graphic items or fixing typos, please create the issue instead of the pull requests. All Pull Requests, except for translations and user documentation, need to be attached to a issue on GitHub. For Pull Requests regarding enhancements and questions, the issue must first be approved by one of project's administrators before being merged into the project. An approved issue will have the label Accepted
. For issues that have not been accepted, you may request to be assigned to that issue.
Opening a issue beforehand allows the administrators and the community to discuss bugs and enhancements before work begins, preventing wasted effort.
- Respect Notepad++ coding style.
- Make single commit per PR.
- Make your modification compact - don't reformat source code in your request. It makes code review more difficult.
- PR of reformatting (changing of ws/TAB, line endings or coding style) of source code won't be accepted. Use issue trackers for your request instead.
In short: The easier the code review is, the better the chance your pull request will get accepted.
-
if () { // Do something }
-
if () { // Do something }
-
if (a == 10 && b == 42)
-
if (a==10&&b==42)
-
for (int i = 0; i != 10; ++i)
-
for(int i=0;i<10;++i)
Function names are not separated from the first parenthesis.
-
foo(); myObject.foo(24);
-
foo ();
-
if (true) while (true)
-
if(myCondition)
switch (test)
{
case 1:
{
// Do something
break;
}
default:
// Do something else
} // No semi-colon here
-
if (foo < I_CAN_PUSH_ON_THE_RED_BUTTON) startThermoNuclearWar();
-
while (lifeTheUniverseAndEverything != 42) lifeTheUniverseAndEverything = buildMorePowerfulComputerForTheAnswer();
-
MyClass instance{10.4};
-
MyClass instance(10.4);
-
if (not string.empty()) ...
-
if (string != "") ...
-
char aChar = static_cast<char>(_pEditView->execute(SCI_GETCHARAT, j));
-
char aChar = (char)_pEditView->execute(SCI_GETCHARAT, j);
-
class IAmAClass {};
-
class iAmClass {}; class I_am_class {};
method parameters (camel case + begins with a lower case)
void myMethod(uint myVeryLongParameter);
Any member variable name of class/struct should be preceded by an underscore.
public:
int _publicAttribute;
private:
int _pPrivateAttribute;
float _pAccount;
-
if (hours < 24 && minutes < 60 && seconds < 60)
-
if (a < 24 && b < 60 && c < 60)
-
// Two lines comment // Use still C++ comment line style
-
/* Please don't piss me off with that */
class Foo
{
int value = 0;
};
++i
to:
i++
(It does not change anything for built-in types but it would bring consistency)