Commits

Anonymous committed 51d21bc

basic support for non-ascii files

Comments (0)

Files changed (3)

 > Public Release 0.5
 
 * including pymacs in ropemacs?
-* change pymacs to accept unicode strings
+* change pymacs to handle unicode buffers
+* pymacs should not raise string exceptions
 * saving the old values of refacturing config
 * showing proposal type in code-assist
 * adding a menu

ropemacs/__init__.py

             globals()[attrname] = attr
 
 
-@ropemacs.lisputils.lispfunction
 def init():
     ropemacs.lisputils.lisp.warn(
         'Calling (rope-init) is no longer needed.')

ropemacs/interface.py

         if narrowed:
             lisp.narrow_to_region(1, lisp.buffer_size() + 1)
         try:
-            return lisp.buffer_string()
+            #result = lisp.buffer_string()
+            result = lisp('(encode-coding-string (buffer-string) buffer-file-coding-system)')
+            coding = lisp['buffer-file-coding-system'].value()
+            if coding is not None:
+                coding_name = coding.text
+                if coding_name.split('-')[-1] in ('dos', 'unix', 'mac'):
+                    coding_name = coding_name[:coding_name.rindex('-')]
+                if coding_name.split('-')[0] in ('mule', 'iso'):
+                    coding_name = coding_name[coding_name.index('-') + 1:]
+                try:
+                    result = unicode(result, coding_name)
+                except (LookupError, UnicodeDecodeError):
+                    result = unicode(result, 'utf-8')
+            return result
         finally:
             if narrowed:
                 lisp.narrow_to_region(old_min, old_max)
 (defgroup ropemacs nil
   "ropemacs, an emacs plugin for rope."
   :link '(url-link "http://rope.sourceforge.net/ropemacs.html")
-  :prefix 'rope-)
+  :prefix "rope-")
 
 (defcustom ropemacs-confirm-saving t
   "Shows whether to confirm saving modified buffers before refactorings.
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.