Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 19 additions & 14 deletions st_cc.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,13 @@
from .cc import *


language_regex = re.compile("(?<=source\.)[\w+#]+")
files = {
".c" : "c",
".cpp" : "c++",
".m" : "objc",
".mm" : "objc++",
}

drivers = {
"c++": "-xc++",
"c": "-xc",
Expand All @@ -21,16 +27,15 @@ def get_unsaved_files(view):
buffer = [(view.file_name(), view.substr(sublime.Region(0, view.size())))]
return buffer

def get_language(view):
caret = view.sel()[0].a
language = language_regex.search(view.scope_name(caret))
if language != None:
language = language.group(0)
def get_language():
filename = sublime.active_window().active_view().file_name()
filename, file_extension = os.path.splitext(filename)
language = files[file_extension]
return language


def can_complete(view):
language = get_language(view)
def can_complete():
language = get_language()
return language in drivers


Expand Down Expand Up @@ -156,7 +161,7 @@ def get_settings():
def get_opt(view):
settings = Complete.get_settings()
additional_lang_opts = settings.get("additional_language_options", {})
language = get_language(view)
language = get_language()
include_opts = settings.get("include_options", [])
project_data = sublime.active_window().project_data()
if "cc_include_options" in project_data:
Expand Down Expand Up @@ -218,15 +223,15 @@ def is_member_completion(view):

class ClangClean(sublime_plugin.TextCommand):
def run(self, edit):
if not can_complete(self.view):
if not can_complete():
return

Complete.clean()


class ClangGotoDef(sublime_plugin.TextCommand):
def run(self, edit):
if not can_complete(self.view):
if not can_complete():
return

filename = self.view.file_name()
Expand All @@ -249,7 +254,7 @@ class CCAutoComplete(sublime_plugin.EventListener):

def on_modified(self, view):
self.dirty = True
if can_complete(view) and Complete.is_member_completion(view):
if can_complete() and Complete.is_member_completion(view):
self.per_complete()


Expand All @@ -265,7 +270,7 @@ def hack2():


def on_post_save_async(self, view):
if not can_complete(view):
if not can_complete():
return

settings = Complete.get_settings()
Expand Down Expand Up @@ -297,7 +302,7 @@ def on_query_completions(self, view, prefix, locations):

file_name = view.file_name()

if not can_complete(view) or file_name==None:
if not can_complete() or file_name==None:
return

# flag = sublime.INHIBIT_WORD_COMPLETIONS | sublime.INHIBIT_EXPLICIT_COMPLETIONS
Expand Down