Пример #1
0
            const serverStarter = function(parsedDotEnsime: EnsimeClient.DotEnsime, pidCallback: (string) => void) {
                console.log("hej server!");
                if (!fs.existsSync(parsedDotEnsime.cacheDir)) {
                    fs.mkdirSync(parsedDotEnsime.cacheDir);
                }
                const ensimeServerVersion = config.get("ensime.serverVersion", "0.9.10-SNAPSHOT");

                //     ensimeServerFlags = atom.config.get('Ensime.ensimeServerFlags')
                const ensimeServerFlags = "";
                
                const assemblyJar = mkAssemblyJarFileName(parsedDotEnsime.scalaEdition, ensimeServerVersion);
                    
                if(fs.existsSync(assemblyJar))
                    EnsimeClient.startServerFromAssemblyJar(assemblyJar, parsedDotEnsime, ensimeServerFlags, pidCallback);
                else {
                    const cpF = mkClasspathFileName(parsedDotEnsime.scalaVersion, ensimeServerVersion);
                    const startFromCPFile =
                        () => EnsimeClient.startServerFromFile(cpF, parsedDotEnsime, ensimeServerFlags, pidCallback);
                    
                    if(! classpathFileOk(cpF)) {
                        const nottin = (s: string, i: string) => {};
                        const pidLogger = () => (string) => {};
                        
                        const serverUpdater =
                            EnsimeClient.ensimeServerUpdate(updateDir(), pidLogger, nottin);
                        // EnsimeClient.ensimeServerUpdate(parsedDotEnsime, ensimeServerVersion, cpF, startFromCPFile);
                    } else
                        startFromCPFile();
                }
            };
Пример #2
0
// Start ensime server. If classpath file is out of date, make an update first
function startEnsimeServer(parsedDotEnsime: DotEnsime) {
    log.debug('starting Ensime server for', parsedDotEnsime.rootDir)
    vscode.window.showInformationMessage("Starting Ensime server")
    if (!fs.existsSync(parsedDotEnsime.cacheDir)) {
        fs.mkdirSync(parsedDotEnsime.cacheDir)
    }

    const ensimeConfig = vscode.workspace.getConfiguration('Ensime')
    const ensimeServerVersion = ensimeConfig.get('ensimeServerVersion').toString()

    const ensimeServerFlags = ensimeConfig.get('ensimeServerFlags').toString()
    const assemblyJar = mkAssemblyJarFilename(parsedDotEnsime.scalaEdition, ensimeServerVersion)

    if(fs.existsSync(assemblyJar)) {
        log.debug('starting from assemblyJar')
        return startServerFromAssemblyJar(assemblyJar, parsedDotEnsime, ensimeServerVersion, ensimeServerFlags)
    } else {
        log.debug('starting from classpath file (coursier)')
        let cpF = mkClasspathFilename(parsedDotEnsime.scalaVersion, ensimeServerVersion)
        const startFromCPFile = () => startServerFromFile(cpF, parsedDotEnsime, ensimeServerVersion, ensimeServerFlags)
    
        if(!classpathFileOk(cpF)) {
            log.debug('No classpath file found matching versions, creating with coursier')
            return fileUtils.ensureExists(packageDir()).then((packageDir) => {
                const p = updateEnsimeServerWithCoursier(parsedDotEnsime, ensimeServerVersion, cpF)
                return p.then(
                    (thang) => {
                        log.debug('got thang', thang, 'starting from cp file')
                        return startFromCPFile();
                    },
                    (failure) => {
                        log.error(failure)
                    }
                    )
            });
        } else {
            log.debug('classpath file ok, using')
            return startFromCPFile()
        }
    }
}