Skip to content

Configure PyCharm IDE #232

Open
Open
@cztomczak

Description

@cztomczak

Instructions for configuring PyCharm IDE for work with CEF Python code.

  1. In Tool Windows > Project right click on "src/extern/cef/", "src/extern/" and "src/" directories and select Mark Directory As > Mark as Sources Root for each of them. You must mark them starting from the most nested, otherwise "Sources Root" option won't be available.
  2. Exclude the "cefpython/build/" directory by right clicking it and choosing "Mark Directory As" > Excluded
  3. Edit ".idea/inspectionProfiles/profiles_settings.xml" and set <option name="USE_PROJECT_PROFILE" value="true" />.
  4. Edit ".idea/inspectionProfiles/Project_Default.xml" and set these options:
<component name="InspectionProjectProfileManager">
  <profile version="1.0">
    <option name="myName" value="Project Default" />
    <inspection_tool class="DuplicatedCode" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
    <inspection_tool class="PyAttributeOutsideInitInspection" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
    <inspection_tool class="PyBroadExceptionInspection" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
    <inspection_tool class="PyMethodMayBeStaticInspection" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
    <inspection_tool class="PyPep8NamingInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true">
      <option name="ignoredErrors">
        <list>
          <option value="N802" />
          <option value="N803" />
          <option value="N806" />
          <option value="N801" />
          <option value="N813" />
        </list>
      </option>
    </inspection_tool>
    <inspection_tool class="PyUnresolvedReferencesInspection" enabled="true" level="WARNING" enabled_by_default="true">
      <option name="ignoredIdentifiers">
        <list>
          <option value="PY_MAJOR_VERSION" />
          <option value="CefJSDialogCallback" />
          <option value="CefBrowser" />
          <option value="CefFrame" />
          <option value="ClientHandler" />
          <option value="CefRequestContext" />
          <option value="RequestContextHandler" />
          <option value="dict.__getitem__" />
          <option value="dict.__setitem__" />
          <option value="list.__getitem__" />
          <option value="list.__setitem__" />
          <option value="tuple.__getitem__" />
          <option value="CefRequestContextHandler" />
          <option value="CefApp" />
          <option value="CefClient" />
          <option value="dict.__delitem__" />
          <option value="CefCommandLine" />
          <option value="CefListValue" />
          <option value="CefCallback" />
          <option value="CefCookieManager" />
          <option value="str.__add__" />
          <option value="UNAME_SYSNAME" />
          <option value="CefBinaryValue" />
          <option value="CefDictionaryValue" />
          <option value="CefString" />
          <option value="CefRect" />
          <option value="CefRequest" />
          <option value="CefAuthCallback" />
          <option value="CefRequestCallback" />
          <option value="CefResourceHandler" />
          <option value="CefWebPluginInfo" />
          <option value="CefResponse" />
          <option value="CefStringVisitor" />
          <option value="CefURLRequest" />
          <option value="CefCompletionCallback" />
          <option value="CefSetCookieCallback" />
          <option value="CefDeleteCookiesCallback" />
          <option value="CefProcessMessage" />
          <option value="CefPostData" />
          <option value="CefPostDataElement" />
          <option value="cpp_multimap" />
          <option value="cpp_vector" />
          <option value="CefTask" />
          <option value="CefURLRequestClient" />
          <option value="CefDragData" />
          <option value="UINT_MAX" />
          <option value="Debug" />
          <option value="long" />
          <option value="CefImage" />
          <option value="scoped_ptr" />
          <option value="MainMessageLoopExternalPump" />
          <option value="CefValue" />
          <option value="Cython.Includes.libcpp.vector.vector.begin" />
          <option value="Cython.Includes.libcpp.vector.vector.end" />
          <option value="preinc" />
          <option value="deref" />
          <option value="PyToCefStringValue" />
        </list>
      </option>
    </inspection_tool>
    <inspection_tool class="SpellCheckingInspection" enabled="false" level="TYPO" enabled_by_default="false">
      <option name="processCode" value="true" />
      <option name="processLiterals" value="true" />
      <option name="processComments" value="true" />
    </inspection_tool>
  </profile>
</component>

Templates usage like CefRefPtr[CefApp] always shows "unresolved reference" error - to fix it add CefApp and others to ignore list:

  • easy to do with alt+enter when cursor over that error
  • or Settings > Inspections > Python unresolved references > Ignore list > Add

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions