Beispiel #1
0
class bls_find_func(BaseTextCommand):
	"""	Если установить курсор на функцию и вызывать эту комманду,
		она просмотрит все bls из секции uses и найдет те,
		в которых в экспортируемых функциях находится - наша
	"""
	
	def on_position(self, view, reg_str):
		if view.is_loading():
			sublime.set_timeout(functools.partial(self.on_position, view, reg_str), 100)
			return		
		fregion = view.find(reg_str, 0, sublime.IGNORECASE)
		if fregion == None:
			return
		fregion = view.line(fregion.end())
		view.sel().clear()
		view.sel().add(fregion)
		view.show(fregion)
	
	def callback(self, idx):
		if idx == -1:
			return
		files = self.finder.get_files()
		if len(files) == idx+1:
			webbrowser.open(self.url)
		else:
			file_view = self.view.window().open_file(files[idx])
			self.on_position(file_view, self.finder.get_reg())

	def is_enabled(self):
		if not self.is_extension("bls"):
			return False
		if not self.is_project_file():
			return False
		return True

	def run(self, edit):
		view   = self.view
		sel_c  = view.sel()
		word_c = view.word(sel_c[0])
		word   = view.substr(word_c).encode('utf-8').strip()
		if len(word) == 0:
			return
		self.url      = 'http://bsdn/w/index.php?search='+word
		cur_file_text = view.substr(sublime.Region(0, view.size())).encode('cp1251')
		self.finder   = FindBLSFunc()
		self.finder.run(self.fullpath(), cur_file_text, word.lower())
		view.window().show_quick_panel(self.finder.get_files(), self.callback)
Beispiel #2
0
	def run(self, edit):
		view   = self.view
		sel_c  = view.sel()
		word_c = view.word(sel_c[0])
		word   = view.substr(word_c).encode('utf-8').strip()
		if len(word) == 0:
			return
		self.url      = 'http://bsdn/w/index.php?search='+word
		cur_file_text = view.substr(sublime.Region(0, view.size())).encode('cp1251')
		self.finder   = FindBLSFunc()
		self.finder.run(self.fullpath(), cur_file_text, word.lower())
		view.window().show_quick_panel(self.finder.get_files(), self.callback)