Esempio n. 1
0
XMLCodeCompletion::XMLCodeCompletion()
    : m_completeReason(kNone)
{
    PrepareHtmlCompletions();
    EventNotifier::Get()->Bind(wxEVT_CCBOX_SELECTION_MADE, &XMLCodeCompletion::OnCodeCompleted, this);

    WebToolsConfig conf;
    m_htmlCcEnabeld = conf.Load().HasHtmlFlag(WebToolsConfig::kHtmlEnableCC);
    m_xmlCcEnabled = conf.Load().HasXmlFlag(WebToolsConfig::kXmlEnableCC);
}
Esempio n. 2
0
bool clTernServer::LocateNodeJS(wxFileName& nodeJS)
{
    WebToolsConfig config;
    config.Load();

    // If we got it in the settings, use it
    if(wxFileName::FileExists(config.GetNodejs())) {
        nodeJS = config.GetNodejs();
        config.Save();
        return true;
    }

    // Auto detect
    NodeJSLocator locator;
    locator.Locate();
    if(!locator.GetNodejs().IsEmpty()) {
        nodeJS = locator.GetNodejs();
        return true;
    }
    return false;
}
Esempio n. 3
0
bool clTernServer::Start(const wxString& workingDirectory)
{
    if(m_fatalError) return false;
    if(!m_jsCCManager->IsEnabled()) return true;

    m_workingDirectory = workingDirectory;
    WebToolsConfig conf;
    conf.Load();

    wxFileName ternFolder(clStandardPaths::Get().GetUserDataDir(), "");
    ternFolder.AppendDir("webtools");
    ternFolder.AppendDir("js");

    wxFileName nodeJS;
    if(!LocateNodeJS(nodeJS)) {
        m_fatalError = true;
        return false;
    }

#ifdef __WXMAC__
    // set permissions to 755
    nodeJS.SetPermissions(wxPOSIX_GROUP_READ | wxPOSIX_GROUP_EXECUTE | wxPOSIX_OTHERS_READ | wxPOSIX_OTHERS_EXECUTE |
                          wxPOSIX_USER_READ | wxPOSIX_USER_WRITE | wxPOSIX_USER_EXECUTE);
#endif

    wxString nodeExe = nodeJS.GetFullPath();
    ::WrapWithQuotes(nodeExe);

    wxFileName ternScript = ternFolder;
    ternScript.AppendDir("bin");
    ternScript.SetFullName("tern");
    wxString ternScriptString = ternScript.GetFullPath();
    ::WrapWithQuotes(ternScriptString);

    wxString command;
    command << nodeExe << " " << ternScriptString << " --persistent ";

    if(conf.HasJavaScriptFlag(WebToolsConfig::kJSEnableVerboseLogging)) {
        command << " --verbose";
    }

    // Create a .tern-project file
    if(m_workingDirectory.IsEmpty()) {
        m_workingDirectory = clStandardPaths::Get().GetUserDataDir();
    }

    wxFileName ternConfig(m_workingDirectory, ".tern-project");
    wxString content = conf.GetTernProjectFile();
    if(!FileUtils::WriteFileContent(ternConfig, content)) {
        ::wxMessageBox(_("Could not write tern project file: ") + ternConfig.GetFullPath(), "CodeLite",
                       wxICON_ERROR | wxOK | wxCENTER);
        PrintMessage("Could not write tern project file: " + ternConfig.GetFullPath());
        m_fatalError = true;
        return false;
    }

    PrintMessage(wxString() << "Starting " << command << "\n");
    m_tern = ::CreateAsyncProcess(this, command, IProcessCreateDefault, m_workingDirectory);
    if(!m_tern) {
        PrintMessage("Failed to start Tern server!");
        return false;
    }
    return true;
}
Esempio n. 4
0
WebToolsSettings::WebToolsSettings(wxWindow* parent)
    : WebToolsSettingsBase(parent)
    , m_modified(false)
{
    ::wxPGPropertyBooleanUseCheckbox(m_pgMgr->GetGrid());
    {
        WebToolsConfig config;
        config.Load();
        m_pgPropEnableJSCC->SetValue(config.HasJavaScriptFlag(WebToolsConfig::kJSEnableCC));
        m_pgPropLogging->SetValue(config.HasJavaScriptFlag(WebToolsConfig::kJSEnableVerboseLogging));
        m_pgPropBrowser->SetValue(config.HasJavaScriptFlag(WebToolsConfig::kJSLibraryBrowser));
        m_pgPropChai->SetValue(config.HasJavaScriptFlag(WebToolsConfig::kJSLibraryChai));
        m_pgPropEcma5->SetValue(config.HasJavaScriptFlag(WebToolsConfig::kJSLibraryEcma5));
        m_pgPropEcma6->SetValue(config.HasJavaScriptFlag(WebToolsConfig::kJSLibraryEcma6));
        m_pgPropJQuery->SetValue(config.HasJavaScriptFlag(WebToolsConfig::kJSLibraryJQuery));
        m_pgPropUnderscore->SetValue(config.HasJavaScriptFlag(WebToolsConfig::kJSLibraryUnderscore));
        m_pgPropAngular->SetValue(config.HasJavaScriptFlag(WebToolsConfig::kJSPluginAngular));
        m_pgPropNode->SetValue(config.HasJavaScriptFlag(WebToolsConfig::kJSPluginNode));
        m_pgPropStrings->SetValue(config.HasJavaScriptFlag(WebToolsConfig::kJSPluginStrings));
        m_pgPropQML->SetValue(config.HasJavaScriptFlag(WebToolsConfig::kJSPluginQML));
    }

    CenterOnParent();
    SetName("WebToolsSettings");
    WindowAttrManager::Load(this);
}
Esempio n. 5
0
void WebToolsSettings::OnOK(wxCommandEvent& event)
{
    event.Skip();

    // Save the settings
    {
        WebToolsConfig config;
        config.Load();
        config.EnableJavaScriptFlag(WebToolsConfig::kJSEnableCC, m_pgPropEnableJSCC->GetValue().GetBool());
        config.EnableJavaScriptFlag(WebToolsConfig::kJSEnableVerboseLogging, m_pgPropLogging->GetValue().GetBool());
        config.EnableJavaScriptFlag(WebToolsConfig::kJSLibraryBrowser, m_pgPropBrowser->GetValue().GetBool());
        config.EnableJavaScriptFlag(WebToolsConfig::kJSLibraryChai, m_pgPropChai->GetValue().GetBool());
        config.EnableJavaScriptFlag(WebToolsConfig::kJSLibraryEcma5, m_pgPropEcma5->GetValue().GetBool());
        config.EnableJavaScriptFlag(WebToolsConfig::kJSLibraryEcma6, m_pgPropEcma6->GetValue().GetBool());
        config.EnableJavaScriptFlag(WebToolsConfig::kJSLibraryJQuery, m_pgPropJQuery->GetValue().GetBool());
        config.EnableJavaScriptFlag(WebToolsConfig::kJSLibraryUnderscore, m_pgPropUnderscore->GetValue().GetBool());
        config.EnableJavaScriptFlag(WebToolsConfig::kJSPluginAngular, m_pgPropAngular->GetValue().GetBool());
        config.EnableJavaScriptFlag(WebToolsConfig::kJSPluginNode, m_pgPropNode->GetValue().GetBool());
        config.EnableJavaScriptFlag(WebToolsConfig::kJSPluginStrings, m_pgPropStrings->GetValue().GetBool());
        config.EnableJavaScriptFlag(WebToolsConfig::kJSPluginQML, m_pgPropQML->GetValue().GetBool());
        config.Save();
    }
}
Esempio n. 6
0
void XMLCodeCompletion::Reload()
{
    WebToolsConfig conf;
    m_htmlCcEnabeld = conf.Load().HasHtmlFlag(WebToolsConfig::kHtmlEnableCC);
    m_xmlCcEnabled = conf.Load().HasXmlFlag(WebToolsConfig::kXmlEnableCC);
}