Ver código fonte

solution file detection ported

Chiel92 11 anos atrás
pai
commit
a69d827934
1 arquivos alterados com 17 adições e 5 exclusões
  1. 17 5
      python/ycm/completers/cs/cs_completer.py

+ 17 - 5
python/ycm/completers/cs/cs_completer.py

@@ -19,10 +19,10 @@
 # along with YouCompleteMe.  If not, see <http://www.gnu.org/licenses/>.
 
 import vim
+import os
+import glob
 from ycm.completers.threaded_completer import ThreadedCompleter
 from ycm import vimsupport
-
-# Import stuff for Omnisharp
 import urllib2
 import urllib
 import urlparse
@@ -68,8 +68,20 @@ class CsharpCompleter( ThreadedCompleter ):
     """ Start the OmniSharp server """
     if ( not self._ServerIsRunning() ):
       # Find the solution file
-      folder = vim.eval( "expand(%:p:h)" )
-      pass
+      folder = os.path.dirname( vim.current.buffer.name )
+      solutionfiles = glob.glob1( folder, "*.sln" )
+      while not solutionfiles:
+        lastfolder = folder
+        # Traverse up a level
+        folder = os.path.dirname( folder )
+        if folder == lastfolder:
+          break
+        solutionfiles = glob.glob1( folder, "*.sln" )
+
+      if len( solutionfiles ) == 1:
+        pass # start server here
+      else:
+        pass # some other stuff, like notifying
 
   def _StopServer( self ):
     """ Stop the OmniSharp server """
@@ -78,7 +90,7 @@ class CsharpCompleter( ThreadedCompleter ):
 
   def _ServerIsRunning( self ):
     """ Check if the OmniSharp server is running """
-    return True
+    return False
 
   def _GetCompletions( self ):
     """ Ask server for completions """