Subject: bug#25066: 25.1; objc-mode still doesn't fontify Objective-C 2.0 keywords

From: Yuriy Pitometsu <[email-masked]>
Date: Tue, 13 Dec 2016 20:50:57 +0200

EXAMPLE from VIM implementation here ;-)
https://fossies.org/linux/vim/runtime/syntax/objc.vim

On Tue, Nov 29, 2016 at 10:32 PM, Yuriy Pitometsu <[email-masked]> wrote:
> As noticed here
> https://lists.gnu.org/archive/html/bug-gnu-emacs/2012-08/msg00689.html,
> there some problems with modern ObjC in Emacs. Further more, that
> issue even contain patch that works at least for "properties". But
> that functionality not available in Emacs 25.1 yet, so disappointing.
>
> In addition, there's no support in font-lock for such nowadays
> features of ObjC syntax like:
> - properties (example: @property (copy, nonatomic, readonly,
> getter=getBlock, null_resettable) void (^ block)(inout
> NSDictionary<NSString *, NSError *> *_Nullable __autoreleasing
> *errorDictionary);)
> - blocks (example: ^ { void (^)(void) = ^(void) {}; }();)
> - literals (example: @{@"":@(@[@1])};)
> - lightweight generics (example: NSArray<NSNumber *> *)
> - modern keywords (example: @import, nullable, __bridge, __block, strong)
>
> --
> In GNU Emacs 25.1.1 (x86_64-apple-darwin15.6.0, NS appkit-1404.47
> Version 10.11.6 (Build 15G1004))
>  of 2016-10-22 built on Yuriys-iMac.local
> Configured using:
>  'configure --disable-dependency-tracking --disable-silent-rules
>  --enable-locallisppath=/usr/local/share/emacs/site-lisp
>  --infodir=/usr/local/Cellar/emacs/25.1/share/info/emacs
>  --prefix=/usr/local/Cellar/emacs/25.1 --without-x --with-xml2
>  --without-dbus --without-gnutls --with-imagemagick --with-rsvg
>  --with-ns --disable-ns-self-contained'
>
> Configured features:
> JPEG RSVG IMAGEMAGICK NOTIFY ACL LIBXML2 ZLIB TOOLKIT_SCROLL_BARS NS
>
> Important settings:
>   value of $LC_CTYPE: UTF-8
>   value of $LANG: en_UA.UTF-8
>   locale-coding-system: utf-8-unix
>
> Major mode: ObjC/l
>
> Minor modes in effect:
>   diff-auto-refine-mode: t
>   tooltip-mode: t
>   global-eldoc-mode: t
>   electric-indent-mode: t
>   mouse-wheel-mode: t
>   tool-bar-mode: t
>   menu-bar-mode: t
>   file-name-shadow-mode: t
>   global-font-lock-mode: t
>   font-lock-mode: t
>   auto-composition-mode: t
>   auto-encryption-mode: t
>   auto-compression-mode: t
>   line-number-mode: t
>   transient-mark-mode: t
>   abbrev-mode: t
>
> Recent messages:
> next-line: End of buffer
> Saving file /Users/netsu/Documents/Projects/Bank34/Podfile...
> Wrote /Users/netsu/Documents/Projects/Bank34/Podfile
> Quit
> Mark saved where search started
> Making completion list...
> Quit
> Making completion list...
> Quit
> Making completion list... [4 times]
>
> Load-path shadows:
> None found.
>
> Features:
> (shadow sort mail-extr emacsbug message dired format-spec rfc822 mml
> mml-sec password-cache epg epg-config gnus-util mm-decode mm-bodies
> mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail
> rfc2047 rfc2045 ietf-drums mm-util help-fns mail-prsvr mail-utils
> cl-extra help-mode cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles
> cc-align cc-engine cc-vars cc-defs cl-loaddefs pcase cl-lib misearch
> multi-isearch vc-git diff-mode easy-mmode ruby-mode smie easymenu
> term/xterm xterm time-date mule-util tooltip eldoc electric uniquify
> ediff-hook vc-hooks lisp-float-type mwheel ns-win ucs-normalize
> term/common-win tool-bar dnd fontset image regexp-opt fringe
> tabulated-list newcomment elisp-mode lisp-mode prog-mode register page
> menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock
> syntax facemenu font-core frame cl-generic cham georgian utf-8-lang
> misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms
> cp51932 hebrew greek romanian slovak czech european ethiopic indian
> cyrillic chinese charscript case-table epa-hook jka-cmpr-hook help
> simple abbrev minibuffer cl-preloaded nadvice loaddefs button faces
> cus-face macroexp files text-properties overlay sha1 md5 base64 format
> env code-pages mule custom widget hashtable-print-readable backquote
> kqueue cocoa ns multi-tty make-network-process emacs)
>
> Memory information:
> ((conses 16 228671 7694)
>  (symbols 48 22509 0)
>  (miscs 40 59 399)
>  (strings 32 23546 6369)
>  (string-bytes 1 777372)
>  (vectors 16 34183)
>  (vector-slots 8 647690 3156)
>  (floats 8 167 683)
>  (intervals 56 872 14)
>  (buffers 976 22))
>
> --
> With best regards,
> Yuriy Pitomets
> Haskell developer | Strong solution
> For beautiful ideas

-- 
With best regards,
Yuriy Pitomets
Haskell developer | Strong solution
For beautiful ideas