After several attempts to configure a Arduino bias user defined language for Notepad++ (NPP) I managed to get something close to what I wanted (all the core and standard library keywords) but some keywords would not highlight as expected and I put this down to limitations of the otherwise excellent NPP user language lexicon. I was going to give up at that but then had the idea of adding Arduino keywords to NPP's built in C++ lexicon. This does seem to work better but at the expense of confusing the C++ language for pure C++ programming. My final solution was to download a portable version of NPP and perform my Arduino C++ additions on this copy so I have a normal C++ version to fall back on if needed.
If your interested then download and extract a portable version of NPP via here http://portableapps.com/apps/development/notepadpp_portable
Load it up, configure it to you liking and install any plugins you use.
Open Style Configurator (Settings->Style Configurator...)
Under 'Language' select 'C++' and then select 'INSTRUCTION WORD' under 'Style'. This should show two text boxes on the right called 'Default keywords' & 'User-defined keywords'.
Copy & paste the line below that begins 'abs acos' into the 'User-defined keywords' text box.
Under 'Style' select 'TYPE WORD' and copy & paste the below line beginning 'boolean byte' into the 'User-defined keywords' text box.
Under 'User ext.' type 'ino' (without the ' markers) into the box provided
Finally, click 'Save & Close' button and you should now have a portable Arduino bias C++ editor in NPP
abs acos analogRead analogReference analogWrite asin atan atan2 attached attachInterrupt autoscroll available begin beginPacket beginTransmission BIN bitClear bitRead bitSet bitWrite blink ceil CHANGE clear close connect connected constrain cos createChar cursor DEC DEFAULT degrees delay delayMicroseconds detachInterrupt digitalRead digitalWrite direction display EEPROM endPacket endTransmission Ethernet EthernetClient EthernetServer exists exp EXTERNAL FALLING File FILE_READ FILE_WRITE floor flush HALF_PI HEX HIGH highByte home INPUT INPUT_PULLUP INTERNAL INTERNAL1V1 INTERNAL2V56 interrupts IPAddress isListening Keyboard leftToRight LiquidCrystal listen LOW lowByte LSBFIRST map max micros millis min mkdir Mouse MSBFIRST NewSoftSerial noAutoscroll noBlink noCursor noDisplay noInterrupts noTone OCT onReceive onRequest open OUTPUT overflow parsePacket peek pinMode position pow print println pulseIn radians randomSeed read readMicroseconds receive remoteIP remotePort remove requestFrom rightToLeft RISING rmdir round scrollDisplayLeft scrollDisplayRight SD seek send Serial Serial1 Serial2 Serial3 Servo setBitOrder setClockDivider setCursor setDataMode setSpeed shiftIn shiftOut sin size SoftwareSerial speed SPI SPI_CLOCK_DIV128 SPI_CLOCK_DIV16 SPI_CLOCK_DIV2 SPI_CLOCK_DIV32 SPI_CLOCK_DIV4 SPI_CLOCK_DIV64 SPI_CLOCK_DIV8 SPI_MODE0 SPI_MODE1 SPI_MODE2 SPI_MODE3 sqrt status step Stepper stop stream tan tone transfer TWO_PI version Wire write writeMicroseconds
boolean byte int16_t int32_t int64_t prog_char prog_int16_t prog_int32_t prog_int64_t prog_int8_t prog_uchar prog_uint16_t prog_uint32_t prog_uint64_t prog_uint8_t prog_void PROGMEM String uint16_t uint32_t uint64_t uint8_t word