Git Product home page Git Product logo

Comments (4)

aoberoi avatar aoberoi commented on September 23, 2024

i'm also looking for objective-c language support. if @ccampbell is willing to accept a PR i'll get started on it.

from rainbow.

nijikokun avatar nijikokun commented on September 23, 2024

@aoberoi and @beakr

Rainbow.extend("objective-c", [
  {
    name: 'keyword',
    pattern: /(\b(?:NS|Json|Http|Multipart|UI|IB|\@)\w+\b)/gm
  }
]);

To fix the strings, in the generic change the string regex to this

/(\(|\s|\[|\=|\@|:)(('|")([^\\\1]|\\.)*?(\3))/gm

@ccampbell you should probably fix this on your generic as well, so you can support certain PHP strings and Objective-C strings all together.

For keywords and functions here you go (see #109 for more information regarding getKeywords):

Rainbow.getKeywords = function(str) {
  str = str.replace(/^\s+|\s+$/g, '').replace(/\s+/g, '|');
  return '\\b(?:' + str + ')\\b';
};

Rainbow.extend("objective-c", [
  {
    name: 'keyword',
    pattern: /(\b(?:NS|Json|Http|Multipart|UI|IB|\@)\w+\b)/gm
  },
  {
    name: 'keyword',
    pattern: new RegExp(Rainbow.getKeywords('break case catch class copy const __finally __exception __try const_cast continue private public protected __declspec default delete deprecated dllexport dllimport do dynamic_cast else enum explicit extern if for friend getter goto inline mutable naked namespace new nil NO noinline nonatomic noreturn nothrow NULL readonly readwrite register reinterpret_cast retain return SEL selectany self setter sizeof static static_cast struct super switch template this thread throw true false try typedef typeid typename union using uuid virtual void volatile whcar_t while YES'), 'gm')
  },
  {
    name: 'functions',
    pattern: new RegExp(Rainbow.getKeywords('assert isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper errno localeconv setlocale acos asin atan atan2 ceil cos cosh exp fabs floor fmod frexp ldexp log log10 modf pow sin sinh sqrt tan tanh jmp_buf longjmp setjmp raise signal sig_atomic_t va_arg va_end va_start clearerr fclose feof ferror fflush fgetc fgetpos fgets fopen fprintf fputc fputs fread freopen fscanf fseek fsetpos ftell fwrite getc getchar gets perror printf putc putchar puts remove rename rewind scanf setbuf setvbuf sprintf sscanf tmpfile tmpnam ungetc vfprintf vprintf vsprintf abort abs atexit atof atoi atol bsearch calloc div exit free getenv labs ldiv malloc mblen mbstowcs mbtowc qsort rand realloc srand strtod strtol strtoul system wcstombs wctomb memchr memcmp memcpy memmove memset strcat strchr strcmp strcoll strcpy strcspn strerror strlen strncat strncmp strncpy strpbrk strrchr strspn strstr strtok strxfrm asctime clock ctime difftime gmtime localtime mktime strftime time', 'gm'))
  }
]);

from rainbow.

roland9 avatar roland9 commented on September 23, 2024

Objective-C support would be great - anything I could do?

from rainbow.

roland9 avatar roland9 commented on September 23, 2024

it looks like @nijikokun worked it out?? :)

from rainbow.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.