Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

No more compatible with Sublime Text 2? #14

Open
Baloobear opened this issue Oct 3, 2013 · 7 comments
Open

No more compatible with Sublime Text 2? #14

Baloobear opened this issue Oct 3, 2013 · 7 comments

Comments

@Baloobear
Copy link

Hi,

I installed this plugin with the Package Control of ST2, but even after a restart of ST2 the plugin isn't available.

A look at the ST2 console told me the following:

Reloading plugin /Users/dennis/Library/Application Support/Sublime Text 2/Packages/Format SQL/FormatSQL.py
Traceback (most recent call last):
File "./sublime_plugin.py", line 62, in reload_plugin
File "./FormatSQL.py", line 8, in
from sqlparse import format
File "./sqlparse/init.py", line 17, in
from . import engine
File "./sqlparse/engine/init.py", line 8, in
from .. import lexer
File "./sqlparse/lexer.py", line 154
class Lexer(object, metaclass=LexerMeta):
^
SyntaxError: invalid syntax

Unfortunately I cannot update to SF3 (OS X too old) and I also have no idea of python. :(

Is there a chance to make this plugin work in ST2 again?

Thanks,
Dennis

@akloeber
Copy link

akloeber commented Oct 4, 2013

Hi there,

I ran into the same error too after installing FormatSQL an hour ago (ST 2.0.2, Build 2221, Mac OSX 10.8.5, Python 2.7.2).

Greets
Andreas

@joaquimpedrooliveira
Copy link

Hello all,

Same problem here using Ubuntu 10.10, ST 2.0.2, build 2221. Installed FormatSQL from package manager.

Any tips?

@ken-maestro
Copy link

I'm running into some syntax error as well (ST2 v2.0.2 build 2221 on OSX 10.8.5). I had python 2.5 and it didn't work then I updated it to python 2.7 and it still doesn't work.

The error cursor is point to a different spot though:

File "./sublime_plugin.py", line 62, in reload_plugin
File "./FormatSQL.py", line 8, in
from sqlparse import format
File "./sqlparse/init.py", line 17, in
from . import engine
File "./sqlparse/engine/init.py", line 8, in
from .. import lexer
File "./sqlparse/lexer.py", line 154
class Lexer(object, metaclass=LexerMeta):
^

Thanks

@akloeber
Copy link

I investigated a little further and found that the cause is the migration from the Python 2 way of defining meta classes with a __metaclass__ attribute to the Python 3 syntax which uses an additional metaclass parameter in the class definition. Unfortunately the Python 2 compiler considers this as a syntax error and even worse the Python 3 compiler just ignores the old __metaclass__ attribute. There is a good explanation at http://mikewatkins.ca/2008/11/29/python-2-and-3-metaclasses/ that describes this and suggests a backward compatible solution that works on Python 2 and 3.

@d42ohpaz
Copy link

d42ohpaz commented Nov 1, 2013

Simple solution, at least for Sublime Text 2: Clone the latest version of sqlparse (https://github.com/andialbrecht/sqlparse) and then replace the sqlparse folder in this plugin with the copy from the clone you just made; restart sublime and life should be good.

@jaredbeck
Copy link

@dohpaz42 thanks, worked for me. Make sure to use https://github.com/andialbrecht/sqlparse/tree/master/sqlparse not https://github.com/andialbrecht/sqlparse

@New-High-Score
Copy link

thanks @dohpaz42, you're a lifesaver!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

8 participants