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

From: Yuriy Pitometsu <[email-masked]>
Date: Tue, 29 Nov 2016 22:32:19 +0200

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