Open
Description
Instructions for configuring PyCharm IDE for work with CEF Python code.
- 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.
- Exclude the "cefpython/build/" directory by right clicking it and choosing "Mark Directory As" > Excluded
- Edit ".idea/inspectionProfiles/profiles_settings.xml" and set
<option name="USE_PROJECT_PROFILE" value="true" />
. - 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