eerolanguage / eero

Eero was a fully binary- and header-compatible dialect of Objective-C, implemented with a modified version of the Apple-sponsored LLVM/clang open-source compiler. It featured a streamlined syntax, Python-like indentation, and other features that improve readability and code safety. It was inspired by languages such as Smalltalk, Python, and Ruby.
https://web.archive.org/web/20171101134337/http://eerolanguage.org/
288 stars 7 forks source link

Xcode5 Plugin: With very first run after install, autocomplete not working #46

Open andyarvanitis opened 10 years ago

andyarvanitis commented 10 years ago

After Xcode is restarted, autocomplete seems to work fine (no issues with subsequent Xcode launches). I don't know why this is happening, but will investigate it.

kelvinpompey commented 10 years ago

I cleared the log and restarted xcode. This is the output of the log afterwards:

11/11/13 6:08:27.432 PM Xcode[1478]: AXALibclangCodeCompleter: clang version: clang version 3.4 (git@github.com:eerolanguage/clang-trunk.git 7fccc66004158330c546ec4524881b798de3fb85) (git@github.com:eerolanguage/llvm-trunk.git 9d293f1f68d890ae391e222fe9384b83183286cb)

11/11/13 6:08:29.536 PM Xcode[1478]: error: Error Domain=NSPOSIXErrorDomain Code=22 "Non-zero exit code 1 returned from shell command: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -v -E -dM -arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk -x eero -c /dev/null 2>&1" UserInfo=0x7fcf7e520b90 {NSLocalizedDescription=Non-zero exit code 1 returned from shell command: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -v -E -dM -arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk -x eero -c /dev/null 2>&1, NSLocalizedFailureReason=Invalid argument}

11/11/13 6:08:29.537 PM Xcode[1478]: Warning: Couldn't discover the 'clang' compiler's built-in search paths and preprocessor definitions for language dialect 'eero'. Compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang Reason: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -v -E -dM -arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk -x eero -c /dev/null 2>&1

There is 1 error and 1 warning.

andyarvanitis commented 10 years ago

Ok, that looks pretty good, actually. You can ignore the "Couldn't discover the 'clang' compiler's built-in search paths" and "Toolchains/XcodeDefault.xctoolchain/usr/bin/clang" errors in general, since they don't have any effect on the plugin. Is your autocomplete working though?

kelvinpompey commented 10 years ago

It seems to be working to some extent. For instance it autocompletes a user defined Class name from within the class itself but it doesn't autocomplete Cocoa types.

andyarvanitis commented 10 years ago

Does it build and run successfully?

kelvinpompey commented 10 years ago

Yes the project I am testing builds and runs successfully. The plugin source does not compile though. It produces the following output.

Build Preparation

Dependency cycle for target 'Eero Xcode Plugin' detected: Eero Xcode Plugin -> Eero Xcode Plugin

Build target Eero Xcode Plugin

CompileC /Users/kelvin/Library/Developer/Xcode/DerivedData/Eero_Xcode_Plugin-baeufcdawlrvssfwcjmewpmtovzv/Build/Intermediates/Eero\ Xcode\ Plugin.build/Debug/Eero\ Xcode\ Plugin.build/Objects-normal/x86_64/AXALibclangCodeCompleter.o Eero\ Xcode\ Plugin/AXALibclangCodeCompleter.m normal x86_64 objective-c com.apple.compilers.llvm.clang.1_0.compiler

cd "/Users/kelvin/eero/xcodesupport/Xcode5/Eero Xcode Plugin"

setenv LANG en_US.US-ASCII

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x objective-c -arch x86_64 -fmessage-length=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -std=gnu99 -fobjc-arc -Wno-trigraphs -fpascal-strings -O0 -Wno-missing-field-initializers -Wno-missing-prototypes -Werror=return-type -Wno-implicit-atomic-properties -Werror=deprecated-objc-isa-usage -Werror=objc-root-class -Wno-receiver-is-weak -Wno-arc-repeated-use-of-weak -Wduplicate-method-match -Wno-missing-braces -Wparentheses -Wswitch -Wunused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wempty-body -Wuninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion -Wshorten-64-to-32 -Wpointer-sign -Wno-newline-eof -Wno-selector -Wno-strict-selector-match -Wundeclared-selector -Wno-deprecated-implementations -DDEBUG=1 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -fasm-blocks -fstrict-aliasing -Wprotocol -Wdeprecated-declarations -mmacosx-version-min=10.9 -g -Wno-sign-conversion -iquote /Users/kelvin/Library/Developer/Xcode/DerivedData/Eero_Xcode_Plugin-baeufcdawlrvssfwcjmewpmtovzv/Build/Intermediates/Eero\ Xcode\ Plugin.build/Debug/Eero\ Xcode\ Plugin.build/Eero\ Xcode\ Plugin-generated-files.hmap -I/Users/kelvin/Library/Developer/Xcode/DerivedData/Eero_Xcode_Plugin-baeufcdawlrvssfwcjmewpmtovzv/Build/Intermediates/Eero\ Xcode\ Plugin.build/Debug/Eero\ Xcode\ Plugin.build/Eero\ Xcode\ Plugin-own-target-headers.hmap -I/Users/kelvin/Library/Developer/Xcode/DerivedData/Eero_Xcode_Plugin-baeufcdawlrvssfwcjmewpmtovzv/Build/Intermediates/Eero\ Xcode\ Plugin.build/Debug/Eero\ Xcode\ Plugin.build/Eero\ Xcode\ Plugin-all-target-headers.hmap -iquote /Users/kelvin/Library/Developer/Xcode/DerivedData/Eero_Xcode_Plugin-baeufcdawlrvssfwcjmewpmtovzv/Build/Intermediates/Eero\ Xcode\ Plugin.build/Debug/Eero\ Xcode\ Plugin.build/Eero\ Xcode\ Plugin-project-headers.hmap -iquote/usr/local/eerolanguage/include -I/Users/kelvin/Library/Developer/Xcode/DerivedData/Eero_Xcode_Plugin-baeufcdawlrvssfwcjmewpmtovzv/Build/Products/Debug/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include -I/Users/kelvin/Library/Developer/Xcode/DerivedData/Eero_Xcode_Plugin-baeufcdawlrvssfwcjmewpmtovzv/Build/Intermediates/Eero\ Xcode\ Plugin.build/Debug/Eero\ Xcode\ Plugin.build/DerivedSources/x86_64 -I/Users/kelvin/Library/Developer/Xcode/DerivedData/Eero_Xcode_Plugin-baeufcdawlrvssfwcjmewpmtovzv/Build/Intermediates/Eero\ Xcode\ Plugin.build/Debug/Eero\ Xcode\ Plugin.build/DerivedSources -F/Users/kelvin/Library/Developer/Xcode/DerivedData/Eero_Xcode_Plugin-baeufcdawlrvssfwcjmewpmtovzv/Build/Products/Debug -MMD -MT dependencies -MF /Users/kelvin/Library/Developer/Xcode/DerivedData/Eero_Xcode_Plugin-baeufcdawlrvssfwcjmewpmtovzv/Build/Intermediates/Eero\ Xcode\ Plugin.build/Debug/Eero\ Xcode\ Plugin.build/Objects-normal/x86_64/AXALibclangCodeCompleter.d --serialize-diagnostics /Users/kelvin/Library/Developer/Xcode/DerivedData/Eero_Xcode_Plugin-baeufcdawlrvssfwcjmewpmtovzv/Build/Intermediates/Eero\ Xcode\ Plugin.build/Debug/Eero\ Xcode\ Plugin.build/Objects-normal/x86_64/AXALibclangCodeCompleter.dia -c /Users/kelvin/eero/xcodesupport/Xcode5/Eero\ Xcode\ Plugin/Eero\ Xcode\ Plugin/AXALibclangCodeCompleter.m -o /Users/kelvin/Library/Developer/Xcode/DerivedData/Eero_Xcode_Plugin-baeufcdawlrvssfwcjmewpmtovzv/Build/Intermediates/Eero\ Xcode\ Plugin.build/Debug/Eero\ Xcode\ Plugin.build/Objects-normal/x86_64/AXALibclangCodeCompleter.o

/Users/kelvin/eero/xcodesupport/Xcode5/Eero Xcode Plugin/Eero Xcode Plugin/AXALibclangCodeCompleter.m:544:14: error: use of undeclared identifier 'CXCursor_PackedAttr'; did you mean 'CXCursor_LastAttr'?

    case CXCursor_PackedAttr:

         ^~~~~~~~~~~~~~~~~~~

         CXCursor_LastAttr

In file included from /Users/kelvin/eero/xcodesupport/Xcode5/Eero Xcode Plugin/Eero Xcode Plugin/AXALibclangCodeCompleter.m:35:

/usr/local/eerolanguage/include/clang-c/Index.h:2098:3: note: 'CXCursor_LastAttr' declared here

CXCursor_LastAttr = CXCursor_AsmLabelAttr,

^

/Users/kelvin/eero/xcodesupport/Xcode5/Eero Xcode Plugin/Eero Xcode Plugin/AXALibclangCodeCompleter.m:544:14: error: duplicate case value: 'CXCursor_AsmLabelAttr' and 'CXCursor_LastAttr' both equal '407'

    case CXCursor_PackedAttr:

         ^

/Users/kelvin/eero/xcodesupport/Xcode5/Eero Xcode Plugin/Eero Xcode Plugin/AXALibclangCodeCompleter.m:542:14: note: previous case defined here

    case CXCursor_AsmLabelAttr:

         ^

2 errors generated.

On Mon, Nov 11, 2013 at 6:27 PM, Andy Arvanitis notifications@github.comwrote:

Does it build and run successfully?

— Reply to this email directly or view it on GitHubhttps://github.com/eerolanguage/eero/issues/46#issuecomment-28246132 .

andyarvanitis commented 10 years ago

Yeah, building the plugin itself is a whole other affair. It requires the full build of eero clang installed at /usr/local/eerolanguage. I haven't gotten to updating the bin builds needed for it, or documenting how to build it, since I've been focusing on the end-user plugin and installer. You really shouldn't need to build the plugin itself, unless of course you plan to modify it.

andyarvanitis commented 10 years ago

If you had previously modified Xcode for eero syntax coloring (using the old plugin), you might want to try reverting those changes. It shouldn't matter, but I haven't done extensive testing with old changes in place.

You'll know it's gone if the "Eero" choice in the "Editor --> Syntax Coloring" menu is gone, since the new plugin doesn't provide one.

kelvinpompey commented 10 years ago

Before running the installer, I deleted the files in the Plug-ins directory.

On Mon, Nov 11, 2013 at 7:11 PM, Andy Arvanitis notifications@github.comwrote:

If you had previously modified Xcode for eero syntax coloring (using the old plugin), you might want to try reverting those changes. It shouldn't matter, but I haven't done extensive testing with old changes in place.

— Reply to this email directly or view it on GitHubhttps://github.com/eerolanguage/eero/issues/46#issuecomment-28251096 .

MaxDesiatov commented 10 years ago

Btw, does the xcode plugin auto-updates itself? How do I know that I have the latest version? Should I uninstall it before installing new version or does it guarantee that overwriting the old version does not cause any problems?

andyarvanitis commented 10 years ago

You don't need to uninstall before installing a newer version; it will overwrite the older one. But it is a good question about knowing which version you have and auto-updates. I have been planning to add an auto-updating mechanism (or at least a clearer way to know/get new versions). I will open a new ticket to reflect this.

MaxDesiatov commented 10 years ago

Hi, thanks for a swift answer!

Keep up your nice work! Eero definitely is the best thing that happened to the Objective-C world in the recent years, so I'm really excited to see a user-friendly and stable Xcode plugin which promotes Eero usage.

andyarvanitis commented 10 years ago

Thanks! It is still rough around the edges, but please let me know if you run into problems. Also, my responses may be a bit slow in the next few days due to the holidays here in the US.