diff --git a/python/edu/build/DMG_background.png b/python/edu/build/DMG_background.png new file mode 100644 index 000000000000..3b5a4b2c1b26 Binary files /dev/null and b/python/edu/build/DMG_background.png differ diff --git a/python/edu/build/paths.nsi b/python/edu/build/paths.nsi new file mode 100644 index 000000000000..910f2b3555b7 --- /dev/null +++ b/python/edu/build/paths.nsi @@ -0,0 +1,6 @@ +; Installer images +!define IMAGES_LOCATION ${COMMUNITY_DIR}\python\build\resources +;!define LICENSE_FILE ${BASE_DIR}\python\license\PyCharm_Preview_License +!define PRODUCT_PROPERTIES_FILE ${BASE_DIR}\out\pycharmEDU\layout\bin\idea.properties +!define PRODUCT_VM_OPTIONS_NAME pycharm.exe.vmoptions +!define PRODUCT_VM_OPTIONS_FILE ${BASE_DIR}\out\pycharmEDU\win\bin\${PRODUCT_VM_OPTIONS_NAME} diff --git a/python/edu/build/plugin-list.txt b/python/edu/build/plugin-list.txt new file mode 100644 index 000000000000..ceaa60895918 --- /dev/null +++ b/python/edu/build/plugin-list.txt @@ -0,0 +1,11 @@ +svn4idea +git4idea +remote-servers-git +github +terminal +IntelliLang +IntelliLang-xml +IntelliLang-js +IntelliLang-python +rest +python-rest diff --git a/python/edu/build/pycharm_edu_build.gant b/python/edu/build/pycharm_edu_build.gant new file mode 100644 index 000000000000..d8f8df3944f6 --- /dev/null +++ b/python/edu/build/pycharm_edu_build.gant @@ -0,0 +1,392 @@ +/* + * Copyright 2000-2014 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import org.jetbrains.jps.LayoutInfo + +import static org.jetbrains.jps.idea.IdeaProjectLoader.guessHome + +setProperty("home", guessHome(this as Script)) + +includeTargets << new File("${guessHome(this as Script)}/build/scripts/utils.gant") +includeTargets << new File("${guessHome(this)}/build/scripts/libLicenses.gant") + +requireProperty("buildNumber", requireProperty("build.number", snapshot)) + +setProperty("ch", home) +setProperty("pythonCommunityHome", "$home/python") +setProperty("pythonEduHome", "$home/python/edu") + +// load ApplicationInfo.xml properties +ant.xmlproperty(file: "$pythonCommunityHome/resources/idea/PyCharmEduApplicationInfo.xml", collapseAttributes: "true") + +setProperty("system_selector", "PyCharm${p("component.version.major")}0") +setProperty("dryRun", false) +setProperty("jdk16", guessJdk()) + +//modules to compile +setProperty("pluginFilter", new File("$pythonEduHome/build/plugin-list.txt").readLines()) + +private List pycharmPlatformApiModules() { + return [platformApiModules, "dom-openapi"].flatten() +} + + +private List pycharmImplementationModules() { //modules to put into pycharm.jar + return [platformImplementationModules, "dom-impl", "python-community", "python-ide-community", "python-openapi", "python-psi-api", + "platform-main", "python-educational"].flatten() +} + +private List modules() { + return [ + "python-pydev", "colorSchemes", pycharmPlatformApiModules(), pycharmImplementationModules(), pluginFilter + ].flatten() +} + +private List approvedJars() { + def normalizedHome = ch.replace('\\', '/') + def normalizedPythonHome = pythonCommunityHome.replace('\\', '/') + return ["$normalizedHome/lib/", "$normalizedPythonHome/lib/", "$normalizedHome/xml/relaxng/lib/"] +} + +class Paths { + final sandbox + final distAll + final distWin + final distMac + final distUnix + final artifacts + final ideaSystem + final ideaConfig + + def Paths(String home) { + sandbox = "$home/out/pycharmEDU" + + distAll = "$sandbox/layout" + distWin = "$sandbox/win" + distMac = "$sandbox/mac" + distUnix = "$sandbox/unix" + artifacts = "$sandbox/artifacts" + + ideaSystem = "$sandbox/system" + ideaConfig = "$sandbox/config" + } +} + +setProperty("paths", new Paths(home)) +setProperty("buildName", "PE-$buildNumber") + +target('default': "Build artifacts") { + + loadProject() + + projectBuilder.stage("Cleaning up sandbox folder") + + projectBuilder.targetFolder = "${paths.sandbox}/classes" + projectBuilder.dryRun = dryRun + + if (!dryRun) { + forceDelete(paths.sandbox) + ant.mkdir(dir: paths.sandbox) + } + + ant.tstamp() { + format(property: "todayYear", pattern: "yyyy") + } + + ant.patternset(id: "resources.included") { + include(name: "**/*.properties") + include(name: "fileTemplates/**/*") + include(name: "inspectionDescriptions/**/*") + include(name: "intentionDescriptions/**/*") + include(name: "tips/**/*") + include(name: "search/**/*") + } + + ant.patternset(id: "resources.excluded") { + exclude(name: "**/*.properties") + exclude(name: "fileTemplates/**/*") + exclude(name: "fileTemplates") + exclude(name: "inspectionDescriptions/**/*") + exclude(name: "inspectionDescriptions") + exclude(name: "intentionDescriptions/**/*") + exclude(name: "intentionDescriptions") + exclude(name: "tips/**/*") + exclude(name: "tips") + } + + zipSources(home, paths.artifacts) + + def usedJars = buildModulesAndCollectUsedJars(modules(), approvedJars(), ["/ant/"]) + + layoutEducational("${paths.sandbox}/classes/production", usedJars) + + /* + buildNSIS([paths.distAll, paths.distWin], + "$home/python/build/strings.nsi", "$home/python/build/paths.nsi", + "pycharm", false, true, system_selector) + */ + + /* + signMacZip("pycharm") + buildDmg("pycharm", "${home}/python/build/DMG_background.png") + */ +} + +public layoutEducational(String classesPath, Set usedJars) { + setProperty("pluginFilter", new File("$pythonEduHome/build/plugin-list.txt").readLines()) + + if (usedJars == null) { + usedJars = collectUsedJars(modules(), approvedJars(), ["/ant/"], null) + } + + def appInfo = appInfoFile(classesPath) + def paths = new Paths(home) + buildSearchableOptions("${projectBuilder.moduleOutput(findModule("platform-resources"))}/search", [], { + projectBuilder.moduleRuntimeClasspath(findModule("main_pycharm_edu"), false).each { + ant.pathelement(location: it) + } + }, "-Didea.platform.prefix=PyCharmEdu -Didea.no.jre.check=true") + + if (!dryRun) { + wireBuildDate("PE-${buildNumber}", appInfo) + } + + Map args = [ + buildNumber: "PE-${buildNumber}", + system_selector: system_selector, + ide_jvm_args: "-Didea.platform.prefix=PyCharmEdu -Didea.no.jre.check=true"] + + LayoutInfo layoutInfo = layoutFull(args, paths.distAll, usedJars) + generateLicensesTable("$paths.artifacts/third-party-libraries.txt", layoutInfo.usedModules); + + layoutWin(args, paths.distWin) + layoutUnix(args, paths.distUnix) + layoutMac(args, paths.distMac) + + ant.echo(message: "PE-${buildNumber}", file: "${paths.distAll}/build.txt") + + def launcher = "${paths.distWin}/bin/pycharm.exe" + List resourcePaths = ["$ch/community-resources/src", + "$ch/platform/icons/src", + "$pythonEduHome/resources"] + buildWinLauncher("$ch", "$ch/bin/WinLauncher/WinLauncher.exe", launcher, + appInfo, "$pythonCommunityHome/build/pycharm_edu_launcher.properties", system_selector, resourcePaths) + + buildWinZip("${paths.artifacts}/pycharmPE-${buildNumber}.zip", [paths.distAll, paths.distWin]) + + String tarRoot = isEap() ? "pycharm-edu-$buildNumber" : "pycharm-edu-${p("component.version.major")}.${p("component.version.minor")}" + buildTarGz(tarRoot, "$paths.artifacts/pycharmPE-${buildNumber}.tar", [paths.distAll, paths.distUnix]) + + String macAppRoot = isEap() ? "PyCharm EDU ${p("component.version.major")}.${p("component.version.minor")} EAP.app/Contents" : "PyCharm EDU.app/Contents" + buildMacZip(macAppRoot, "${paths.artifacts}/pycharmEDU-${buildNumber}.sit", [paths.distAll], paths.distMac) +} + +private layoutPlugins(layouts) { + dir("plugins") { + layouts.layoutPlugin("rest") + layouts.layoutPlugin("python-rest") + } + + layouts.layoutEducationalPlugins(ch) +} + +private String appInfoFile(String classesPath) { + return "$classesPath/python-community/idea/PyCharmEduApplicationInfo.xml" +} + +private layoutFull(Map args, String target, Set usedJars) { + def openapiModules = pycharmPlatformApiModules() + def superLayouts = includeFile("$ch/build/scripts/layouts.gant") + + reassignAltClickToMultipleCarets("$ch") + + def result = layout(target) { + dir("lib") { + jar("util.jar") { + module("util") + module("util-rt") + } + + jar("openapi.jar") { + openapiModules.each { module it } + } + + jar("annotations.jar") { module("annotations") } + jar("extensions.jar") { module("extensions") } + + jar("pycharm.jar") { + pycharmImplementationModules().each { + module(it) { + exclude(name: "**/tips/**") + } + } + } + + jar("pycharm-pydev.jar") { + module("python-pydev") + } + + jar("bootstrap.jar") { module("bootstrap") } + jar("resources.jar") { + module("platform-resources") + module("colorSchemes") + } + + jar("forms_rt.jar") { + module("forms_rt") + } + + //noinspection GroovyAssignabilityCheck + jar([name: "resources_en.jar", duplicate: "preserve"]) { + // custom resources should go first + fileset(dir: "$pythonCommunityHome/resources") { + include(name: "**/tips/**") + } + module("platform-resources-en") { + ant.patternset { + exclude(name: "tips/images/switcher.png") + exclude(name: "tips/images/navigateToFilePath.gif") + } + } + } + + jar("icons.jar") { module("icons") } + jar("boot.jar") { module("boot") } + + usedJars.each { + fileset(file: it) + } + + dir("libpty") { + fileset(dir: "$ch/lib/libpty") { + exclude(name: "*.txt") + } + } + + dir("ext") { + fileset(dir: "$ch/lib") { + include(name: "cglib*.jar") + } + } + + dir("src") { + fileset(dir: "$ch/lib/src") { + include(name: "trove4j_changes.txt") + include(name: "trove4j_src.jar") + } + + jar("pycharm-pydev-src.zip") { + fileset(dir: "$pythonCommunityHome/pydevSrc") + } + jar("pycharm-openapi-src.zip") { + fileset(dir: "$pythonCommunityHome/openapi/src") + fileset(dir: "$pythonCommunityHome/psi-api/src") + } + } + } + + dir("help") { + fileset(dir: "$home/python/help") { + include(name: "*.pdf") + } + } + + dir("helpers") { + fileset(dir: "$pythonCommunityHome/helpers") + } + + dir("license") { + fileset(dir: "$ch/license") + fileset(dir: "$ch") { + include(name: "LICENSE.txt") + include(name: "NOTICE.txt") + } + } + + layoutPlugins(superLayouts) + + dir("bin") { + fileset(dir: "$ch/bin") { + exclude(name: "appletviewer.policy") + include(name: "*.*") + } + } + } + patchPropertiesFile(target, args + [appendices: ["$home/build/conf/ideaJNC.properties"]]) + return result +} + +private layoutWin(Map args, String target) { + layout(target) { + dir("bin") { + fileset(dir: "$ch/bin/win") { + exclude(name: "breakgen*") + } + } + + dir("skeletons") { + fileset(dir: "$pythonCommunityHome/skeletons") { + include(name: "skeletons-win*.zip") + } + } + } + + winScripts(target, ch, "pycharm.bat", args) + winVMOptions(target, null, "pycharm.exe") + + ant.copy(file: "$home/python/help/pycharmhelp.jar", todir: "$target/help", failonerror: false) +} + +private layoutUnix(Map args, String target) { + layout(target) { + dir("bin") { + fileset(dir: "$ch/bin/linux") { + exclude(name: "libbreakgen*") + } + } + } + + ant.copy(file: "$pythonCommunityHome/resources/PyCharmCore128.png", tofile: "$target/bin/pycharm.png") + + unixScripts(target, ch, "pycharm.sh", args) + unixVMOptions(target, "pycharm") + + ant.copy(file: "$home/python/help/pycharmhelp.jar", todir: "$target/help", failonerror: false) +} + +private layoutMac(Map _args, String target) { + layout(target) { + dir("bin") { + fileset(dir: "$home/bin") { + include(name: "*.jnilib") + } + } + + dir("skeletons") { + fileset(dir: "$pythonCommunityHome/skeletons") { + include(name: "skeletons-mac*.zip") + } + } + } + + Map args = new HashMap(_args) + args.icns = "$pythonCommunityHome/resources/PyCharmCore.icns" + args.bundleIdentifier = "com.jetbrains.pycharm" + args.platform_prefix = "PyCharmEdu" + args.help_id = "PY" + args."idea.properties.path" = "${paths.distAll}/bin/idea.properties" + args."idea.properties" = ["idea.no.jre.check": true, "ide.mac.useNativeClipboard": "false"]; + layoutMacApp(target, ch, args) +} diff --git a/python/edu/build/pycharm_edu_launcher.properties b/python/edu/build/pycharm_edu_launcher.properties new file mode 100644 index 000000000000..d3554685ce3b --- /dev/null +++ b/python/edu/build/pycharm_edu_launcher.properties @@ -0,0 +1,3 @@ +IDS_JDK_ENV_VAR=PYCHARM_JDK +IDS_JDK_ONLY=false +IDS_VM_OPTIONS=-Didea.platform.prefix=PyCharmEdu -Didea.no.jre.check=true -Didea.paths.selector=__PRODUCT_PATHS_SELECTOR__ diff --git a/python/edu/build/python-edu-build.iml b/python/edu/build/python-edu-build.iml new file mode 100644 index 000000000000..bda177851580 --- /dev/null +++ b/python/edu/build/python-edu-build.iml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/python/edu/build/resources/PC_instCom.ico b/python/edu/build/resources/PC_instCom.ico new file mode 100644 index 000000000000..44ecec9c8755 Binary files /dev/null and b/python/edu/build/resources/PC_instCom.ico differ diff --git a/python/edu/build/resources/PC_uninstCom.ico b/python/edu/build/resources/PC_uninstCom.ico new file mode 100644 index 000000000000..13e9f96f9987 Binary files /dev/null and b/python/edu/build/resources/PC_uninstCom.ico differ diff --git a/python/edu/build/resources/headerlogo.bmp b/python/edu/build/resources/headerlogo.bmp new file mode 100644 index 000000000000..c06099264961 Binary files /dev/null and b/python/edu/build/resources/headerlogo.bmp differ diff --git a/python/edu/build/resources/logo.bmp b/python/edu/build/resources/logo.bmp new file mode 100644 index 000000000000..0f0f82da7b1e Binary files /dev/null and b/python/edu/build/resources/logo.bmp differ diff --git a/python/edu/build/resources/pycharm_inst.ico b/python/edu/build/resources/pycharm_inst.ico new file mode 100644 index 000000000000..6c75bcdbc441 Binary files /dev/null and b/python/edu/build/resources/pycharm_inst.ico differ diff --git a/python/edu/build/resources/pycharm_uninst.ico b/python/edu/build/resources/pycharm_uninst.ico new file mode 100644 index 000000000000..a5b9ad86ae94 Binary files /dev/null and b/python/edu/build/resources/pycharm_uninst.ico differ diff --git a/python/edu/build/strings.nsi b/python/edu/build/strings.nsi new file mode 100644 index 000000000000..fa10d421024c --- /dev/null +++ b/python/edu/build/strings.nsi @@ -0,0 +1,13 @@ +!define MANUFACTURER "JetBrains" +!define MUI_PRODUCT "PyCharm Educational Edition" +!define PRODUCT_FULL_NAME "JetBrains PyCharm Educational Edition" +!define PRODUCT_EXE_FILE "pycharm.exe" +!define PRODUCT_ICON_FILE "PC_instCom.ico" +!define PRODUCT_UNINST_ICON_FILE "PC_uninstCom.ico" +!define PRODUCT_LOGO_FILE "logo.bmp" +!define PRODUCT_HEADER_FILE "headerlogo.bmp" + +; if SHOULD_SET_DEFAULT_INSTDIR != 0 then default installation directory will be directory where highest-numbered PyCharm build has been installed +; set to 1 for release build +!define SHOULD_SET_DEFAULT_INSTDIR "0" + diff --git a/python/edu/main_pycharm_edu.iml b/python/edu/main_pycharm_edu.iml new file mode 100644 index 000000000000..18ba324a73e1 --- /dev/null +++ b/python/edu/main_pycharm_edu.iml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/python/edu/python-educational.iml b/python/edu/python-educational.iml new file mode 100644 index 000000000000..92439c421c2d --- /dev/null +++ b/python/edu/python-educational.iml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/python/edu/resources/ProductivityFeaturesRegistry.xml b/python/edu/resources/ProductivityFeaturesRegistry.xml new file mode 100644 index 000000000000..2910dc26b475 --- /dev/null +++ b/python/edu/resources/ProductivityFeaturesRegistry.xml @@ -0,0 +1,293 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/python/edu/resources/PyCharmCore.icns b/python/edu/resources/PyCharmCore.icns new file mode 100644 index 000000000000..65167d934ab6 Binary files /dev/null and b/python/edu/resources/PyCharmCore.icns differ diff --git a/python/edu/resources/PyCharmCore.ico b/python/edu/resources/PyCharmCore.ico new file mode 100644 index 000000000000..095e0e14293f Binary files /dev/null and b/python/edu/resources/PyCharmCore.ico differ diff --git a/python/edu/resources/PyCharmCore128.png b/python/edu/resources/PyCharmCore128.png new file mode 100644 index 000000000000..6f23e62d385d Binary files /dev/null and b/python/edu/resources/PyCharmCore128.png differ diff --git a/python/edu/resources/PyCharmCore13.png b/python/edu/resources/PyCharmCore13.png new file mode 100644 index 000000000000..de135e7f6a90 Binary files /dev/null and b/python/edu/resources/PyCharmCore13.png differ diff --git a/python/edu/resources/PyCharmCore16.png b/python/edu/resources/PyCharmCore16.png new file mode 100644 index 000000000000..3328fdb44c8b Binary files /dev/null and b/python/edu/resources/PyCharmCore16.png differ diff --git a/python/edu/resources/PyCharmCore32.png b/python/edu/resources/PyCharmCore32.png new file mode 100644 index 000000000000..0d06345e5189 Binary files /dev/null and b/python/edu/resources/PyCharmCore32.png differ diff --git a/python/edu/resources/PyCharmCoreWelcomeCaption.png b/python/edu/resources/PyCharmCoreWelcomeCaption.png new file mode 100644 index 000000000000..325f4a579de9 Binary files /dev/null and b/python/edu/resources/PyCharmCoreWelcomeCaption.png differ diff --git a/python/edu/resources/PyCharmCoreWelcomeScreen.png b/python/edu/resources/PyCharmCoreWelcomeScreen.png new file mode 100644 index 000000000000..67ad229ed928 Binary files /dev/null and b/python/edu/resources/PyCharmCoreWelcomeScreen.png differ diff --git a/python/edu/resources/PyCharmCoreWelcomeScreen@2x.png b/python/edu/resources/PyCharmCoreWelcomeScreen@2x.png new file mode 100644 index 000000000000..16aeb07b7d31 Binary files /dev/null and b/python/edu/resources/PyCharmCoreWelcomeScreen@2x.png differ diff --git a/python/edu/resources/colorSchemes/PythonDarcula.xml b/python/edu/resources/colorSchemes/PythonDarcula.xml new file mode 100644 index 000000000000..97d59dde6c58 --- /dev/null +++ b/python/edu/resources/colorSchemes/PythonDarcula.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + diff --git a/python/edu/resources/colorSchemes/PythonDefault.xml b/python/edu/resources/colorSchemes/PythonDefault.xml new file mode 100644 index 000000000000..058ac3c402f1 --- /dev/null +++ b/python/edu/resources/colorSchemes/PythonDefault.xml @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + diff --git a/python/edu/resources/community_progress_tail.png b/python/edu/resources/community_progress_tail.png new file mode 100644 index 000000000000..b6f7661c913c Binary files /dev/null and b/python/edu/resources/community_progress_tail.png differ diff --git a/python/edu/resources/developSlogan.png b/python/edu/resources/developSlogan.png new file mode 100644 index 000000000000..4200ac2d1339 Binary files /dev/null and b/python/edu/resources/developSlogan.png differ diff --git a/python/edu/resources/fileTemplates/internal/Python Script.py.ft b/python/edu/resources/fileTemplates/internal/Python Script.py.ft new file mode 100644 index 000000000000..edba329d3074 --- /dev/null +++ b/python/edu/resources/fileTemplates/internal/Python Script.py.ft @@ -0,0 +1 @@ +__author__ = '$USER' diff --git a/python/edu/resources/fileTemplates/internal/Python Unit Test.py.ft b/python/edu/resources/fileTemplates/internal/Python Unit Test.py.ft new file mode 100644 index 000000000000..bc5c1af456cb --- /dev/null +++ b/python/edu/resources/fileTemplates/internal/Python Unit Test.py.ft @@ -0,0 +1,10 @@ +__author__ = '$USER' + +import unittest + +class MyTestCase(unittest.TestCase): + def test_something(self): + self.assertEqual(True, False) + +if __name__ == '__main__': + unittest.main() diff --git a/python/edu/resources/fileTemplates/internal/Setup Script.py.ft b/python/edu/resources/fileTemplates/internal/Setup Script.py.ft new file mode 100644 index 000000000000..cb9cb9b36e0b --- /dev/null +++ b/python/edu/resources/fileTemplates/internal/Setup Script.py.ft @@ -0,0 +1,12 @@ +from distutils.core import setup + +setup( + name='$Package_name', + version='$Version', + packages=$PackageList,$PackageDirs + url='$URL', + license='$License', + author='$Author', + author_email='$Author_Email', + description='$Description' +) diff --git a/python/edu/resources/icon-robots.txt b/python/edu/resources/icon-robots.txt new file mode 100644 index 000000000000..e9cf8c7fee89 --- /dev/null +++ b/python/edu/resources/icon-robots.txt @@ -0,0 +1,3 @@ +# Only has artwork and tips stuff +skip: *.png +skip: tips diff --git a/python/edu/resources/icons/com/jetbrains/pyqt/tsFile.png b/python/edu/resources/icons/com/jetbrains/pyqt/tsFile.png new file mode 100644 index 000000000000..b87e71b3a14f Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/pyqt/tsFile.png differ diff --git a/python/edu/resources/icons/com/jetbrains/pyqt/tsFile@2x.png b/python/edu/resources/icons/com/jetbrains/pyqt/tsFile@2x.png new file mode 100644 index 000000000000..628e5af168b1 Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/pyqt/tsFile@2x.png differ diff --git a/python/edu/resources/icons/com/jetbrains/pyqt/uiForm.png b/python/edu/resources/icons/com/jetbrains/pyqt/uiForm.png new file mode 100644 index 000000000000..ad5c245e8f1c Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/pyqt/uiForm.png differ diff --git a/python/edu/resources/icons/com/jetbrains/pyqt/uiForm@2x.png b/python/edu/resources/icons/com/jetbrains/pyqt/uiForm@2x.png new file mode 100644 index 000000000000..a4b359a8a4fa Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/pyqt/uiForm@2x.png differ diff --git a/python/edu/resources/icons/com/jetbrains/python/buildout/buildout.png b/python/edu/resources/icons/com/jetbrains/python/buildout/buildout.png new file mode 100644 index 000000000000..21710ea36466 Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/buildout/buildout.png differ diff --git a/python/edu/resources/icons/com/jetbrains/python/buildout/buildout@2x.png b/python/edu/resources/icons/com/jetbrains/python/buildout/buildout@2x.png new file mode 100644 index 000000000000..e0bcb6e65933 Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/buildout/buildout@2x.png differ diff --git a/python/edu/resources/icons/com/jetbrains/python/debug/commandLine.png b/python/edu/resources/icons/com/jetbrains/python/debug/commandLine.png new file mode 100644 index 000000000000..3d2333b0e7e8 Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/debug/commandLine.png differ diff --git a/python/edu/resources/icons/com/jetbrains/python/debug/commandLine@2x.png b/python/edu/resources/icons/com/jetbrains/python/debug/commandLine@2x.png new file mode 100644 index 000000000000..a70992337f1e Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/debug/commandLine@2x.png differ diff --git a/python/edu/resources/icons/com/jetbrains/python/dotnet.png b/python/edu/resources/icons/com/jetbrains/python/dotnet.png new file mode 100644 index 000000000000..b7ff8dbb0cbe Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/dotnet.png differ diff --git a/python/edu/resources/icons/com/jetbrains/python/dotnet@2x.png b/python/edu/resources/icons/com/jetbrains/python/dotnet@2x.png new file mode 100644 index 000000000000..1c08889f8a00 Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/dotnet@2x.png differ diff --git a/python/edu/resources/icons/com/jetbrains/python/interpreterGear.png b/python/edu/resources/icons/com/jetbrains/python/interpreterGear.png new file mode 100644 index 000000000000..ea7f94761fdb Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/interpreterGear.png differ diff --git a/python/edu/resources/icons/com/jetbrains/python/interpreterGear@2x.png b/python/edu/resources/icons/com/jetbrains/python/interpreterGear@2x.png new file mode 100644 index 000000000000..fe190f2412aa Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/interpreterGear@2x.png differ diff --git a/python/edu/resources/icons/com/jetbrains/python/interpreterGear@2x_dark.png b/python/edu/resources/icons/com/jetbrains/python/interpreterGear@2x_dark.png new file mode 100644 index 000000000000..2d77aac65fa5 Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/interpreterGear@2x_dark.png differ diff --git a/python/edu/resources/icons/com/jetbrains/python/interpreterGear_dark.png b/python/edu/resources/icons/com/jetbrains/python/interpreterGear_dark.png new file mode 100644 index 000000000000..44e79af9551d Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/interpreterGear_dark.png differ diff --git a/python/edu/resources/icons/com/jetbrains/python/jython.png b/python/edu/resources/icons/com/jetbrains/python/jython.png new file mode 100644 index 000000000000..ed5d76a9fcd3 Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/jython.png differ diff --git a/python/edu/resources/icons/com/jetbrains/python/jython@2x.png b/python/edu/resources/icons/com/jetbrains/python/jython@2x.png new file mode 100644 index 000000000000..ff092c1449e6 Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/jython@2x.png differ diff --git a/python/edu/resources/icons/com/jetbrains/python/nodes/cyan-dot.png b/python/edu/resources/icons/com/jetbrains/python/nodes/cyan-dot.png new file mode 100644 index 000000000000..9118f7dfe9a8 Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/nodes/cyan-dot.png differ diff --git a/python/edu/resources/icons/com/jetbrains/python/nodes/cyan-dot@2x.png b/python/edu/resources/icons/com/jetbrains/python/nodes/cyan-dot@2x.png new file mode 100644 index 000000000000..6b4f5766e5ce Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/nodes/cyan-dot@2x.png differ diff --git a/python/edu/resources/icons/com/jetbrains/python/nodes/lock.png b/python/edu/resources/icons/com/jetbrains/python/nodes/lock.png new file mode 100644 index 000000000000..be02730a235a Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/nodes/lock.png differ diff --git a/python/edu/resources/icons/com/jetbrains/python/nodes/lock@2x.png b/python/edu/resources/icons/com/jetbrains/python/nodes/lock@2x.png new file mode 100644 index 000000000000..84c278689df8 Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/nodes/lock@2x.png differ diff --git a/python/edu/resources/icons/com/jetbrains/python/nodes/red-inv-triangle.png b/python/edu/resources/icons/com/jetbrains/python/nodes/red-inv-triangle.png new file mode 100644 index 000000000000..c078c76171b6 Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/nodes/red-inv-triangle.png differ diff --git a/python/edu/resources/icons/com/jetbrains/python/nodes/red-inv-triangle@2x.png b/python/edu/resources/icons/com/jetbrains/python/nodes/red-inv-triangle@2x.png new file mode 100644 index 000000000000..1c7c45e60332 Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/nodes/red-inv-triangle@2x.png differ diff --git a/python/edu/resources/icons/com/jetbrains/python/propertyDeleter.png b/python/edu/resources/icons/com/jetbrains/python/propertyDeleter.png new file mode 100644 index 000000000000..908454736bed Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/propertyDeleter.png differ diff --git a/python/edu/resources/icons/com/jetbrains/python/propertyDeleter@2x.png b/python/edu/resources/icons/com/jetbrains/python/propertyDeleter@2x.png new file mode 100644 index 000000000000..5e022744fb00 Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/propertyDeleter@2x.png differ diff --git a/python/edu/resources/icons/com/jetbrains/python/propertyDeleter@2x_dark.png b/python/edu/resources/icons/com/jetbrains/python/propertyDeleter@2x_dark.png new file mode 100644 index 000000000000..fc0705981518 Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/propertyDeleter@2x_dark.png differ diff --git a/python/edu/resources/icons/com/jetbrains/python/propertyDeleter_dark.png b/python/edu/resources/icons/com/jetbrains/python/propertyDeleter_dark.png new file mode 100644 index 000000000000..65dd90b3a066 Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/propertyDeleter_dark.png differ diff --git a/python/edu/resources/icons/com/jetbrains/python/propertyGetter.png b/python/edu/resources/icons/com/jetbrains/python/propertyGetter.png new file mode 100644 index 000000000000..d3069a8d2650 Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/propertyGetter.png differ diff --git a/python/edu/resources/icons/com/jetbrains/python/propertyGetter@2x.png b/python/edu/resources/icons/com/jetbrains/python/propertyGetter@2x.png new file mode 100644 index 000000000000..bbb02025b6f2 Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/propertyGetter@2x.png differ diff --git a/python/edu/resources/icons/com/jetbrains/python/propertyGetter@2x_dark.png b/python/edu/resources/icons/com/jetbrains/python/propertyGetter@2x_dark.png new file mode 100644 index 000000000000..69e1fe4d52c6 Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/propertyGetter@2x_dark.png differ diff --git a/python/edu/resources/icons/com/jetbrains/python/propertyGetter_dark.png b/python/edu/resources/icons/com/jetbrains/python/propertyGetter_dark.png new file mode 100644 index 000000000000..cf114e38c516 Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/propertyGetter_dark.png differ diff --git a/python/edu/resources/icons/com/jetbrains/python/propertySetter.png b/python/edu/resources/icons/com/jetbrains/python/propertySetter.png new file mode 100644 index 000000000000..0154c387fd74 Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/propertySetter.png differ diff --git a/python/edu/resources/icons/com/jetbrains/python/propertySetter@2x.png b/python/edu/resources/icons/com/jetbrains/python/propertySetter@2x.png new file mode 100644 index 000000000000..f9dbee7c1905 Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/propertySetter@2x.png differ diff --git a/python/edu/resources/icons/com/jetbrains/python/propertySetter@2x_dark.png b/python/edu/resources/icons/com/jetbrains/python/propertySetter@2x_dark.png new file mode 100644 index 000000000000..072bd5e4e8b7 Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/propertySetter@2x_dark.png differ diff --git a/python/edu/resources/icons/com/jetbrains/python/propertySetter_dark.png b/python/edu/resources/icons/com/jetbrains/python/propertySetter_dark.png new file mode 100644 index 000000000000..75f0423c8103 Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/propertySetter_dark.png differ diff --git a/python/edu/resources/icons/com/jetbrains/python/pypy.png b/python/edu/resources/icons/com/jetbrains/python/pypy.png new file mode 100644 index 000000000000..1649f3a6b6b8 Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/pypy.png differ diff --git a/python/edu/resources/icons/com/jetbrains/python/pypy@2x.png b/python/edu/resources/icons/com/jetbrains/python/pypy@2x.png new file mode 100644 index 000000000000..a55a1a20c38d Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/pypy@2x.png differ diff --git a/python/edu/resources/icons/com/jetbrains/python/python-logo.png b/python/edu/resources/icons/com/jetbrains/python/python-logo.png new file mode 100644 index 000000000000..87fff4d6dbfb Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/python-logo.png differ diff --git a/python/edu/resources/icons/com/jetbrains/python/python.png b/python/edu/resources/icons/com/jetbrains/python/python.png new file mode 100644 index 000000000000..02f66b7fabd4 Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/python.png differ diff --git a/python/edu/resources/icons/com/jetbrains/python/python@2x.png b/python/edu/resources/icons/com/jetbrains/python/python@2x.png new file mode 100644 index 000000000000..87fff4d6dbfb Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/python@2x.png differ diff --git a/python/edu/resources/icons/com/jetbrains/python/pythonClosed.png b/python/edu/resources/icons/com/jetbrains/python/pythonClosed.png new file mode 100644 index 000000000000..d3d3257cf83e Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/pythonClosed.png differ diff --git a/python/edu/resources/icons/com/jetbrains/python/pythonClosed@2x.png b/python/edu/resources/icons/com/jetbrains/python/pythonClosed@2x.png new file mode 100644 index 000000000000..68d99e2eeb8d Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/pythonClosed@2x.png differ diff --git a/python/edu/resources/icons/com/jetbrains/python/pythonTests.png b/python/edu/resources/icons/com/jetbrains/python/pythonTests.png new file mode 100644 index 000000000000..5bcf60420dc9 Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/pythonTests.png differ diff --git a/python/edu/resources/icons/com/jetbrains/python/pythonTests@2x.png b/python/edu/resources/icons/com/jetbrains/python/pythonTests@2x.png new file mode 100644 index 000000000000..2bbbec6755ca Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/pythonTests@2x.png differ diff --git a/python/edu/resources/icons/com/jetbrains/python/python_24.png b/python/edu/resources/icons/com/jetbrains/python/python_24.png new file mode 100644 index 000000000000..fbdfc6ab02c9 Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/python_24.png differ diff --git a/python/edu/resources/icons/com/jetbrains/python/python_24@2x.png b/python/edu/resources/icons/com/jetbrains/python/python_24@2x.png new file mode 100644 index 000000000000..5cef65bcb381 Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/python_24@2x.png differ diff --git a/python/edu/resources/icons/com/jetbrains/python/templateRoot.png b/python/edu/resources/icons/com/jetbrains/python/templateRoot.png new file mode 100644 index 000000000000..32d4880ec454 Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/templateRoot.png differ diff --git a/python/edu/resources/icons/com/jetbrains/python/templateRoot@2x.png b/python/edu/resources/icons/com/jetbrains/python/templateRoot@2x.png new file mode 100644 index 000000000000..bc475d5c0771 Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/templateRoot@2x.png differ diff --git a/python/edu/resources/icons/com/jetbrains/python/virtualenv.png b/python/edu/resources/icons/com/jetbrains/python/virtualenv.png new file mode 100644 index 000000000000..2c0f94f19608 Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/virtualenv.png differ diff --git a/python/edu/resources/icons/com/jetbrains/python/virtualenv@2x.png b/python/edu/resources/icons/com/jetbrains/python/virtualenv@2x.png new file mode 100644 index 000000000000..721a63b883bd Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/virtualenv@2x.png differ diff --git a/python/edu/resources/idea/PyCharmEduApplicationInfo.xml b/python/edu/resources/idea/PyCharmEduApplicationInfo.xml new file mode 100644 index 000000000000..46695ef29ed4 --- /dev/null +++ b/python/edu/resources/idea/PyCharmEduApplicationInfo.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/python/edu/resources/inspectionDescriptions/BuildoutUnresolvedPartInspection.html b/python/edu/resources/inspectionDescriptions/BuildoutUnresolvedPartInspection.html new file mode 100644 index 000000000000..b5b36c654afe --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/BuildoutUnresolvedPartInspection.html @@ -0,0 +1,5 @@ + + +This inspection highlights unresolved buildout parts. + + diff --git a/python/edu/resources/inspectionDescriptions/PyAbstractClassInspection.html b/python/edu/resources/inspectionDescriptions/PyAbstractClassInspection.html new file mode 100644 index 000000000000..41d83f7dcb9c --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyAbstractClassInspection.html @@ -0,0 +1,7 @@ + + + + This inspection detects when there aren't all abstract properties/methods are defined in subclass + + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyArgumentEqualDefaultInspection.html b/python/edu/resources/inspectionDescriptions/PyArgumentEqualDefaultInspection.html new file mode 100644 index 000000000000..16d894ec131c --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyArgumentEqualDefaultInspection.html @@ -0,0 +1,7 @@ + + + +This inspection highlights situations, where argument passed to function is equal to default parameter value + + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyArgumentListInspection.html b/python/edu/resources/inspectionDescriptions/PyArgumentListInspection.html new file mode 100644 index 000000000000..97d74c0f04ed --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyArgumentListInspection.html @@ -0,0 +1,8 @@ + + + +This inspection reports discrepancies between declared parameters and actual arguments, as well as +incorrect arguments (e.g. duplicate named arguments) and incorrect argument order. Decorators are analyzed, too. + + + diff --git a/python/edu/resources/inspectionDescriptions/PyAssignmentToLoopOrWithParameterInspection.html b/python/edu/resources/inspectionDescriptions/PyAssignmentToLoopOrWithParameterInspection.html new file mode 100644 index 000000000000..4fc3dcd20164 --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyAssignmentToLoopOrWithParameterInspection.html @@ -0,0 +1,21 @@ + + + + Checks for cases when you rewrite loop variable with inner loop + +
+    for i in xrange(5):
+      for i in xrange(20, 25):
+          print("Inner", i)
+      print("Outer", i)
+  
+ + It also warns you if variable declared in with statement is redeclared inside of statement body: + +
+    with open("file") as f:
+      f.read()
+      with open("file") as f:
+  
+ + diff --git a/python/edu/resources/inspectionDescriptions/PyAttributeOutsideInitInspection.html b/python/edu/resources/inspectionDescriptions/PyAttributeOutsideInitInspection.html new file mode 100644 index 000000000000..4e0fee15aac0 --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyAttributeOutsideInitInspection.html @@ -0,0 +1,7 @@ + + + +This inspection detects instance attribute definition outside __init__ method + + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyAugmentAssignmentInspection.html b/python/edu/resources/inspectionDescriptions/PyAugmentAssignmentInspection.html new file mode 100644 index 000000000000..f9684908d722 --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyAugmentAssignmentInspection.html @@ -0,0 +1,7 @@ + + + +This inspection highlights assignment that can be replaced with augmented assignment. + + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyBroadExceptionInspection.html b/python/edu/resources/inspectionDescriptions/PyBroadExceptionInspection.html new file mode 100644 index 000000000000..67c31a550156 --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyBroadExceptionInspection.html @@ -0,0 +1,8 @@ + + + +This inspection highlights too broad exception clauses such as +no exception class specified, or specified as 'Exception'. + + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyByteLiteralInspection.html b/python/edu/resources/inspectionDescriptions/PyByteLiteralInspection.html new file mode 100644 index 000000000000..e26cb4c5f6ed --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyByteLiteralInspection.html @@ -0,0 +1,7 @@ + + + + This inspection detects characters > 255 in byte literals. + + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyCallByClassInspection.html b/python/edu/resources/inspectionDescriptions/PyCallByClassInspection.html new file mode 100644 index 000000000000..7bc9775f3135 --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyCallByClassInspection.html @@ -0,0 +1,15 @@ + + +

+This inspection checks for calls of a method by class while passing an instance of a different class +as self parameter:

+
+  foo = Foo()
+  Bar.baz(foo, *more)
+
+

+Sometimes this may be intentional and correct. +But when unintentional, this leads to subtle bugs. +

+ + diff --git a/python/edu/resources/inspectionDescriptions/PyCallingNonCallableInspection.html b/python/edu/resources/inspectionDescriptions/PyCallingNonCallableInspection.html new file mode 100644 index 000000000000..fdc8ed156416 --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyCallingNonCallableInspection.html @@ -0,0 +1,7 @@ + + + + This inspection highlights attempts to call objects which are not callable, like, for example, tuples. + + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyChainedComparisonsInspection.html b/python/edu/resources/inspectionDescriptions/PyChainedComparisonsInspection.html new file mode 100644 index 000000000000..657c918d0c8f --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyChainedComparisonsInspection.html @@ -0,0 +1,7 @@ + + + +This inspection highlights chained comparisons that can be simplified. + + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyClassHasNoInitInspection.html b/python/edu/resources/inspectionDescriptions/PyClassHasNoInitInspection.html new file mode 100644 index 000000000000..c31c8f8bf788 --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyClassHasNoInitInspection.html @@ -0,0 +1,7 @@ + + + +This inspection used when a class has no __init__ method, neither its parent classes. + + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyClassicStyleClassInspection.html b/python/edu/resources/inspectionDescriptions/PyClassicStyleClassInspection.html new file mode 100644 index 000000000000..3894d7fe87c3 --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyClassicStyleClassInspection.html @@ -0,0 +1,5 @@ + + +This inspection detects classic style classes usage. + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyComparisonWithNoneInspection.html b/python/edu/resources/inspectionDescriptions/PyComparisonWithNoneInspection.html new file mode 100644 index 000000000000..37a8c54b1627 --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyComparisonWithNoneInspection.html @@ -0,0 +1,8 @@ + + + + This inspection highlights comparisons with None. That type of comparisons + should always be done with 'is' or 'is not', never the equality operators. + + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyCompatibilityInspection.html b/python/edu/resources/inspectionDescriptions/PyCompatibilityInspection.html new file mode 100644 index 000000000000..7bb11b11976d --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyCompatibilityInspection.html @@ -0,0 +1,8 @@ + + + +Enable this inspection if you need your code to be compatible with a range of Python versions (for example, if you're building a library). +The range of Python versions with which the code needs to be compatible can be specified in the inspection settings. + + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyDecoratorInspection.html b/python/edu/resources/inspectionDescriptions/PyDecoratorInspection.html new file mode 100644 index 000000000000..1265e99e5579 --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyDecoratorInspection.html @@ -0,0 +1,7 @@ + + +

+This inspection reports usages of @classmethod or @staticmethod decorators on functions outside of a class. +

+ + diff --git a/python/edu/resources/inspectionDescriptions/PyDefaultArgumentInspection.html b/python/edu/resources/inspectionDescriptions/PyDefaultArgumentInspection.html new file mode 100644 index 000000000000..3dced26af04e --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyDefaultArgumentInspection.html @@ -0,0 +1,9 @@ + + + + This inspection detects when a mutable value as list or dictionary is detected in a default value for an argument.
+ Default argument values are evaluated only once at function definition time, which means that modifying the + default value of the argument will affect all subsequent calls of the function. +
+ + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyDeprecatedModulesInspection.html b/python/edu/resources/inspectionDescriptions/PyDeprecatedModulesInspection.html new file mode 100644 index 000000000000..0d03609e0a00 --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyDeprecatedModulesInspection.html @@ -0,0 +1,7 @@ + + + + This inspection highlight import statements references a module which is deprecated in current Python version. + + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyDeprecationInspection.html b/python/edu/resources/inspectionDescriptions/PyDeprecationInspection.html new file mode 100644 index 000000000000..46c89d8ed8d1 --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyDeprecationInspection.html @@ -0,0 +1,8 @@ + + + + This inspection highlights usages of Python functions, classes or methods which are marked as deprecated (which raise a + DeprecationWarning or a PendingDeprecationWarning). + + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyDictCreationInspection.html b/python/edu/resources/inspectionDescriptions/PyDictCreationInspection.html new file mode 100644 index 000000000000..af988be8ce9a --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyDictCreationInspection.html @@ -0,0 +1,6 @@ + + +This inspection detects situations when dictionary creation + could be rewritten with dictionary literal. + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyDictDuplicateKeysInspection.html b/python/edu/resources/inspectionDescriptions/PyDictDuplicateKeysInspection.html new file mode 100644 index 000000000000..8f828987ba89 --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyDictDuplicateKeysInspection.html @@ -0,0 +1,7 @@ + + + +This inspection highlights using the same value as dictionary key twice. + + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyDocstringInspection.html b/python/edu/resources/inspectionDescriptions/PyDocstringInspection.html new file mode 100644 index 000000000000..f9f48e5e7204 --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyDocstringInspection.html @@ -0,0 +1,7 @@ + + + + This inspection detects mismatched parameters in docstring, lack of docstring and an empty docstring. + + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyDocstringTypesInspection.html b/python/edu/resources/inspectionDescriptions/PyDocstringTypesInspection.html new file mode 100644 index 000000000000..18f462f3a161 --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyDocstringTypesInspection.html @@ -0,0 +1,5 @@ + + +This inspection highlights types in docstring which don't match dynamically inferred types. + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyExceptClausesOrderInspection.html b/python/edu/resources/inspectionDescriptions/PyExceptClausesOrderInspection.html new file mode 100644 index 000000000000..d6ade17849ec --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyExceptClausesOrderInspection.html @@ -0,0 +1,9 @@ + + + + This inspection highlights situations when except clauses are not in the correct order + (from the more specific to the more generic) or one exception class is caught twice.
+ If you don't fix the order, some exceptions may not be catched by the most specific handler. +
+ + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyExceptionInheritInspection.html b/python/edu/resources/inspectionDescriptions/PyExceptionInheritInspection.html new file mode 100644 index 000000000000..71ba2f796ad0 --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyExceptionInheritInspection.html @@ -0,0 +1,7 @@ + + + + This inspection detects when a custom exception class is raised but doesn't inherit from the builtin "Exception" class. + + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyFromFutureImportInspection.html b/python/edu/resources/inspectionDescriptions/PyFromFutureImportInspection.html new file mode 100644 index 000000000000..1161ea2b1035 --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyFromFutureImportInspection.html @@ -0,0 +1,7 @@ + + + + This inspection detects 'from __future__ import' statements which are used not in the beginning of a file. + + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyGlobalUndefinedInspection.html b/python/edu/resources/inspectionDescriptions/PyGlobalUndefinedInspection.html new file mode 100644 index 000000000000..f493865fdbd7 --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyGlobalUndefinedInspection.html @@ -0,0 +1,7 @@ + + + + This inspection is used when a variable is defined through the "global" statement but the variable is not defined in the module scope. + + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyInconsistentIndentationInspection.html b/python/edu/resources/inspectionDescriptions/PyInconsistentIndentationInspection.html new file mode 100644 index 000000000000..9fefe1fa6f88 --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyInconsistentIndentationInspection.html @@ -0,0 +1,7 @@ + + +This inspection reports inconsistent indentation in Python source files (for example, use of a mixture + of tabs and spaces). + + + diff --git a/python/edu/resources/inspectionDescriptions/PyInitNewSignatureInspection.html b/python/edu/resources/inspectionDescriptions/PyInitNewSignatureInspection.html new file mode 100644 index 000000000000..3c44c678c864 --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyInitNewSignatureInspection.html @@ -0,0 +1,7 @@ + + + + This inspection checks mutual compatibility of __new__ and __init__ signatures. + + + diff --git a/python/edu/resources/inspectionDescriptions/PyInterpreterInspection.html b/python/edu/resources/inspectionDescriptions/PyInterpreterInspection.html new file mode 100644 index 000000000000..3d33dd83160b --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyInterpreterInspection.html @@ -0,0 +1,5 @@ + + +This inspection notifies you if the current project has no Python interpreter configured or an invalid Python interpreter. + + diff --git a/python/edu/resources/inspectionDescriptions/PyListCreationInspection.html b/python/edu/resources/inspectionDescriptions/PyListCreationInspection.html new file mode 100644 index 000000000000..47dfd11bdbc1 --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyListCreationInspection.html @@ -0,0 +1,8 @@ + + + + This inspection detects situations when list creation + could be rewritten with list literal. + + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyMandatoryEncodingInspection.html b/python/edu/resources/inspectionDescriptions/PyMandatoryEncodingInspection.html new file mode 100644 index 000000000000..8f9c1c87332c --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyMandatoryEncodingInspection.html @@ -0,0 +1,7 @@ + + + + This inspection detects lack of encoding magic comment for file. + + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyMethodFirstArgAssignmentInspection.html b/python/edu/resources/inspectionDescriptions/PyMethodFirstArgAssignmentInspection.html new file mode 100644 index 000000000000..37914bb36ac9 --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyMethodFirstArgAssignmentInspection.html @@ -0,0 +1,6 @@ + + +This inspection detects cases when first parameter, such as 'self' or 'cls', is reassigned in a method. +In most cases imaginable, there's no point in such reassignment, and it indicates an error. + + diff --git a/python/edu/resources/inspectionDescriptions/PyMethodMayBeStaticInspection.html b/python/edu/resources/inspectionDescriptions/PyMethodMayBeStaticInspection.html new file mode 100644 index 000000000000..b6c42bf6bfb6 --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyMethodMayBeStaticInspection.html @@ -0,0 +1,7 @@ + + + + This inspection detects any methods which may safely be made static. + + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyMethodOverridingInspection.html b/python/edu/resources/inspectionDescriptions/PyMethodOverridingInspection.html new file mode 100644 index 000000000000..95b3a9fdaac8 --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyMethodOverridingInspection.html @@ -0,0 +1,6 @@ + + + This inspection detects inconsistencies in overriding method signatures. + + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyMethodParametersInspection.html b/python/edu/resources/inspectionDescriptions/PyMethodParametersInspection.html new file mode 100644 index 000000000000..378ed277a5a9 --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyMethodParametersInspection.html @@ -0,0 +1,5 @@ + + +This inspection looks for methods that lack a first parameter (which is usually named self). + + diff --git a/python/edu/resources/inspectionDescriptions/PyMissingConstructorInspection.html b/python/edu/resources/inspectionDescriptions/PyMissingConstructorInspection.html new file mode 100644 index 000000000000..281213efbff0 --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyMissingConstructorInspection.html @@ -0,0 +1,7 @@ + + + +This inspection warns if call to super constructor in class is missed + + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyNestedDecoratorsInspection.html b/python/edu/resources/inspectionDescriptions/PyNestedDecoratorsInspection.html new file mode 100644 index 000000000000..f42239f79e6e --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyNestedDecoratorsInspection.html @@ -0,0 +1,7 @@ + + + +This inspection looks for certain decorators that don't nest well. + + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyNonAsciiCharInspection.html b/python/edu/resources/inspectionDescriptions/PyNonAsciiCharInspection.html new file mode 100644 index 000000000000..c3f32441a4ac --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyNonAsciiCharInspection.html @@ -0,0 +1,7 @@ + + + + This inspection detects file contains non-ASCII characters and doesn't have an encoding declaration at the top. + + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyNoneFunctionAssignmentInspection.html b/python/edu/resources/inspectionDescriptions/PyNoneFunctionAssignmentInspection.html new file mode 100644 index 000000000000..e06c37f23b0f --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyNoneFunctionAssignmentInspection.html @@ -0,0 +1,6 @@ + + +This inspection is similar to pylint inspection E1111. It highlights situations when an assignment is done on a function call but the inferred function doesn't return anything. + + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyOldStyleClassesInspection.html b/python/edu/resources/inspectionDescriptions/PyOldStyleClassesInspection.html new file mode 100644 index 000000000000..49a70216c631 --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyOldStyleClassesInspection.html @@ -0,0 +1,7 @@ + + + + This inspection highlights occurrences of new-style class features in old-style classes. + + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyPackageRequirementsInspection.html b/python/edu/resources/inspectionDescriptions/PyPackageRequirementsInspection.html new file mode 100644 index 000000000000..ad916132fc56 --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyPackageRequirementsInspection.html @@ -0,0 +1,5 @@ + + +This inspection warns about imported or required, but not installed packages. + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyPep8Inspection.html b/python/edu/resources/inspectionDescriptions/PyPep8Inspection.html new file mode 100644 index 000000000000..3fa74ec62d48 --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyPep8Inspection.html @@ -0,0 +1,5 @@ + + +This inspection runs the pep8.py tool to check for violations of the PEP 8 coding style guide. + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyPep8NamingInspection.html b/python/edu/resources/inspectionDescriptions/PyPep8NamingInspection.html new file mode 100644 index 000000000000..1668c3fbb377 --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyPep8NamingInspection.html @@ -0,0 +1,5 @@ + + +This inspection checks the PEP8 naming conventions. + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyPropertyAccessInspection.html b/python/edu/resources/inspectionDescriptions/PyPropertyAccessInspection.html new file mode 100644 index 000000000000..437a05918de1 --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyPropertyAccessInspection.html @@ -0,0 +1,8 @@ + + + + This inspection checks that properties are accessed correctly: + read-only not set, write-only not read, non-deletable not deleted. + + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyPropertyDefinitionInspection.html b/python/edu/resources/inspectionDescriptions/PyPropertyDefinitionInspection.html new file mode 100644 index 000000000000..38b322dd58fe --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyPropertyDefinitionInspection.html @@ -0,0 +1,8 @@ + + + + This inspection checks that arguments to property() and functions annotated with + @property and friends look reasonably. + + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyProtectedMemberInspection.html b/python/edu/resources/inspectionDescriptions/PyProtectedMemberInspection.html new file mode 100644 index 000000000000..d48badd5e7fe --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyProtectedMemberInspection.html @@ -0,0 +1,7 @@ + + + +This inspection warns if a protected member is access outside the class or a descendant of the class where it's defined. + + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyRaisingNewStyleClassInspection.html b/python/edu/resources/inspectionDescriptions/PyRaisingNewStyleClassInspection.html new file mode 100644 index 000000000000..e598afdcce23 --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyRaisingNewStyleClassInspection.html @@ -0,0 +1,9 @@ + + + + This inspection detects attempts to raise a new-style class as an exception in projects with + language level less than 2.5. Raising new-style classes is only supported in Python 2.5 + or later. + + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyRedeclarationInspection.html b/python/edu/resources/inspectionDescriptions/PyRedeclarationInspection.html new file mode 100644 index 000000000000..1902a8f1a5c7 --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyRedeclarationInspection.html @@ -0,0 +1,9 @@ + + +This inspection detects unconditional redeclarations of names without being used in between, like this:
+
def x(): pass
+x = 2
+
+It applies to function and class declarations, and top-level assignments.
+
+ diff --git a/python/edu/resources/inspectionDescriptions/PyRedundantParenthesesInspection.html b/python/edu/resources/inspectionDescriptions/PyRedundantParenthesesInspection.html new file mode 100644 index 000000000000..329591d4e425 --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyRedundantParenthesesInspection.html @@ -0,0 +1,7 @@ + + + +This inspection highlights redundant parentheses in statements. + + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyReturnFromInitInspection.html b/python/edu/resources/inspectionDescriptions/PyReturnFromInitInspection.html new file mode 100644 index 000000000000..7820f74cbede --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyReturnFromInitInspection.html @@ -0,0 +1,6 @@ + + +This inspection reports occurrences of return statements with a return value inside + __init__ methods of classes. A constructor should not return any value. + + diff --git a/python/edu/resources/inspectionDescriptions/PySetFunctionToLiteralInspection.html b/python/edu/resources/inspectionDescriptions/PySetFunctionToLiteralInspection.html new file mode 100644 index 000000000000..a54baa15f59f --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PySetFunctionToLiteralInspection.html @@ -0,0 +1,8 @@ + + + + This inspection detects call for function "set" which can be replaced with + set literal. + + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyShadowingBuiltinsInspection.html b/python/edu/resources/inspectionDescriptions/PyShadowingBuiltinsInspection.html new file mode 100644 index 000000000000..f25c27847c4f --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyShadowingBuiltinsInspection.html @@ -0,0 +1,5 @@ + + +This inspection detects shadowing built-in names, such as 'len' or 'list'. + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyShadowingNamesInspection.html b/python/edu/resources/inspectionDescriptions/PyShadowingNamesInspection.html new file mode 100644 index 000000000000..dabfaf0b94a1 --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyShadowingNamesInspection.html @@ -0,0 +1,5 @@ + + +This inspection detects shadowing names defined in outer scopes. + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PySimplifyBooleanCheckInspection.html b/python/edu/resources/inspectionDescriptions/PySimplifyBooleanCheckInspection.html new file mode 100644 index 000000000000..dc5059e90a35 --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PySimplifyBooleanCheckInspection.html @@ -0,0 +1,7 @@ + + + + This inspection detects equality comparison with a boolean literal. + + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PySingleQuotedDocstringInspection.html b/python/edu/resources/inspectionDescriptions/PySingleQuotedDocstringInspection.html new file mode 100644 index 000000000000..e1674d5aa517 --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PySingleQuotedDocstringInspection.html @@ -0,0 +1,7 @@ + + + +This inspection highlights docstrings not using triple double-quoted string format. + + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyStatementEffectInspection.html b/python/edu/resources/inspectionDescriptions/PyStatementEffectInspection.html new file mode 100644 index 000000000000..99eee87de619 --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyStatementEffectInspection.html @@ -0,0 +1,7 @@ + + + + This inspection detects statements without any effect. + + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyStringExceptionInspection.html b/python/edu/resources/inspectionDescriptions/PyStringExceptionInspection.html new file mode 100644 index 000000000000..c2584f6bd36c --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyStringExceptionInspection.html @@ -0,0 +1,7 @@ + + + + This inspection detects when a string exception is raised. + + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyStringFormatInspection.html b/python/edu/resources/inspectionDescriptions/PyStringFormatInspection.html new file mode 100644 index 000000000000..2146cacc428f --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyStringFormatInspection.html @@ -0,0 +1,7 @@ + + + + This inspection detects errors in string formatting operations. + + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PySuperArgumentsInspection.html b/python/edu/resources/inspectionDescriptions/PySuperArgumentsInspection.html new file mode 100644 index 000000000000..7229a01cfc75 --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PySuperArgumentsInspection.html @@ -0,0 +1,7 @@ + + + + This inspection check that in any call to super(A, B), B either is an instance of A or a subclass of A. + + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyTrailingSemicolonInspection.html b/python/edu/resources/inspectionDescriptions/PyTrailingSemicolonInspection.html new file mode 100644 index 000000000000..1d4b70b3dc13 --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyTrailingSemicolonInspection.html @@ -0,0 +1,5 @@ + + +This inspection detects trailing semicolons in statements. + + diff --git a/python/edu/resources/inspectionDescriptions/PyTupleAssignmentBalanceInspection.html b/python/edu/resources/inspectionDescriptions/PyTupleAssignmentBalanceInspection.html new file mode 100644 index 000000000000..6aa175b0927f --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyTupleAssignmentBalanceInspection.html @@ -0,0 +1,6 @@ + + + + This inspection check that the number of expressions on right-hand side and targets on left-hand side are the same. + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyTupleItemAssignmentInspection.html b/python/edu/resources/inspectionDescriptions/PyTupleItemAssignmentInspection.html new file mode 100644 index 000000000000..49a437b3561f --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyTupleItemAssignmentInspection.html @@ -0,0 +1,7 @@ + + + + This inspection detects assignments to tuple item. + + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyTypeCheckerInspection.html b/python/edu/resources/inspectionDescriptions/PyTypeCheckerInspection.html new file mode 100644 index 000000000000..f2fc714eee0c --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyTypeCheckerInspection.html @@ -0,0 +1,8 @@ + + +This inspection detects type errors in function call expressions. +Due to dynamic dispatch and duck typing, this is possible in a limited but +useful number of cases. Types of function parameters can be specified in +docstrings or in Python 3 function annotations. + + diff --git a/python/edu/resources/inspectionDescriptions/PyUnboundLocalVariableInspection.html b/python/edu/resources/inspectionDescriptions/PyUnboundLocalVariableInspection.html new file mode 100644 index 000000000000..c65de68ae122 --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyUnboundLocalVariableInspection.html @@ -0,0 +1,5 @@ + + +This inspection warns about local variables referenced before assignment. + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyUnnecessaryBackslashInspection.html b/python/edu/resources/inspectionDescriptions/PyUnnecessaryBackslashInspection.html new file mode 100644 index 000000000000..75d0bd3ba6d5 --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyUnnecessaryBackslashInspection.html @@ -0,0 +1,7 @@ + + + +This inspection highlights backslashes in places where line continuation is implicit (inside (), [], {}). + + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyUnreachableCodeInspection.html b/python/edu/resources/inspectionDescriptions/PyUnreachableCodeInspection.html new file mode 100644 index 000000000000..ed689c3de81b --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyUnreachableCodeInspection.html @@ -0,0 +1,3 @@ + +This inspection detects code which can not be normally reached. + diff --git a/python/edu/resources/inspectionDescriptions/PyUnresolvedReferencesInspection.html b/python/edu/resources/inspectionDescriptions/PyUnresolvedReferencesInspection.html new file mode 100644 index 000000000000..8841b4687e61 --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyUnresolvedReferencesInspection.html @@ -0,0 +1,7 @@ + + +This inspection detects names that should resolve but don't. +Due to dynamic dispatch and duck typing, this is possible in a limited but useful +number of cases. Top-level and class-level items are supported better than instance items. + + diff --git a/python/edu/resources/inspectionDescriptions/PyUnsupportedFeaturesInspection.html b/python/edu/resources/inspectionDescriptions/PyUnsupportedFeaturesInspection.html new file mode 100644 index 000000000000..b0c92cf6725b --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyUnsupportedFeaturesInspection.html @@ -0,0 +1,7 @@ + + + + This inspection detects usage of language features which not supported by current Python version + + + \ No newline at end of file diff --git a/python/edu/resources/inspectionDescriptions/PyUnusedLocalInspection.html b/python/edu/resources/inspectionDescriptions/PyUnusedLocalInspection.html new file mode 100644 index 000000000000..95ce583e518d --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/PyUnusedLocalInspection.html @@ -0,0 +1,3 @@ + + This inspection highlights local variables,parameters or local functions unused in scope. + diff --git a/python/edu/resources/inspectionDescriptions/RestRoleInspection.html b/python/edu/resources/inspectionDescriptions/RestRoleInspection.html new file mode 100644 index 000000000000..75809b6562be --- /dev/null +++ b/python/edu/resources/inspectionDescriptions/RestRoleInspection.html @@ -0,0 +1,7 @@ + + + + This inspection detects undefined roles. + + + \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/ConvertFormatOperatorToMethodIntention/after.py.template b/python/edu/resources/intentionDescriptions/ConvertFormatOperatorToMethodIntention/after.py.template new file mode 100644 index 000000000000..ea988e4ae394 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/ConvertFormatOperatorToMethodIntention/after.py.template @@ -0,0 +1 @@ +print("{0: 5.3F}".format(12)) \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/ConvertFormatOperatorToMethodIntention/before.py.template b/python/edu/resources/intentionDescriptions/ConvertFormatOperatorToMethodIntention/before.py.template new file mode 100644 index 000000000000..fdf53299f13f --- /dev/null +++ b/python/edu/resources/intentionDescriptions/ConvertFormatOperatorToMethodIntention/before.py.template @@ -0,0 +1 @@ +print("% 5.3F" % 12) diff --git a/python/edu/resources/intentionDescriptions/ConvertFormatOperatorToMethodIntention/description.html b/python/edu/resources/intentionDescriptions/ConvertFormatOperatorToMethodIntention/description.html new file mode 100644 index 000000000000..64adb58c79e3 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/ConvertFormatOperatorToMethodIntention/description.html @@ -0,0 +1,7 @@ + + + + This intention replaces a string format operator with the equivalent 'format' method call. + + + \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/ConvertVariadicParamIntention/after.py.template b/python/edu/resources/intentionDescriptions/ConvertVariadicParamIntention/after.py.template new file mode 100644 index 000000000000..4a19285fe1f5 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/ConvertVariadicParamIntention/after.py.template @@ -0,0 +1,2 @@ +def foo(foo): + doSomething(foo) \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/ConvertVariadicParamIntention/before.py.template b/python/edu/resources/intentionDescriptions/ConvertVariadicParamIntention/before.py.template new file mode 100644 index 000000000000..ca5b415454d2 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/ConvertVariadicParamIntention/before.py.template @@ -0,0 +1,2 @@ +def foo(**kwargs): + doSomething(kwargs['foo']) \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/ConvertVariadicParamIntention/description.html b/python/edu/resources/intentionDescriptions/ConvertVariadicParamIntention/description.html new file mode 100644 index 000000000000..10db640519f0 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/ConvertVariadicParamIntention/description.html @@ -0,0 +1,7 @@ + + + + This intention replaces variadic parameter(s) with usual. + + + \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/ImportFromToImportIntention/after.py.template b/python/edu/resources/intentionDescriptions/ImportFromToImportIntention/after.py.template new file mode 100644 index 000000000000..3158f1b50510 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/ImportFromToImportIntention/after.py.template @@ -0,0 +1,2 @@ +import sys +name = sys.argv[0] diff --git a/python/edu/resources/intentionDescriptions/ImportFromToImportIntention/before.py.template b/python/edu/resources/intentionDescriptions/ImportFromToImportIntention/before.py.template new file mode 100644 index 000000000000..8ccd26c2c6ae --- /dev/null +++ b/python/edu/resources/intentionDescriptions/ImportFromToImportIntention/before.py.template @@ -0,0 +1,2 @@ +from sys import argv +name = argv[0] diff --git a/python/edu/resources/intentionDescriptions/ImportFromToImportIntention/description.html b/python/edu/resources/intentionDescriptions/ImportFromToImportIntention/description.html new file mode 100644 index 000000000000..63818e399ca3 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/ImportFromToImportIntention/description.html @@ -0,0 +1,8 @@ + + + +This intention transforms from module_name import ... into import module_name +and qualifies any names imported from that module by module name. + + + \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/ImportToImportFromIntention/after.py.template b/python/edu/resources/intentionDescriptions/ImportToImportFromIntention/after.py.template new file mode 100644 index 000000000000..8ccd26c2c6ae --- /dev/null +++ b/python/edu/resources/intentionDescriptions/ImportToImportFromIntention/after.py.template @@ -0,0 +1,2 @@ +from sys import argv +name = argv[0] diff --git a/python/edu/resources/intentionDescriptions/ImportToImportFromIntention/before.py.template b/python/edu/resources/intentionDescriptions/ImportToImportFromIntention/before.py.template new file mode 100644 index 000000000000..3158f1b50510 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/ImportToImportFromIntention/before.py.template @@ -0,0 +1,2 @@ +import sys +name = sys.argv[0] diff --git a/python/edu/resources/intentionDescriptions/ImportToImportFromIntention/description.html b/python/edu/resources/intentionDescriptions/ImportToImportFromIntention/description.html new file mode 100644 index 000000000000..880f1e8deea2 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/ImportToImportFromIntention/description.html @@ -0,0 +1,8 @@ + + + +This intention replaces import foo with from foo import ... +and drop qualifiers at references to names from foo. + + + diff --git a/python/edu/resources/intentionDescriptions/ImportToggleAliasIntention/after.py.template b/python/edu/resources/intentionDescriptions/ImportToggleAliasIntention/after.py.template new file mode 100644 index 000000000000..3331304b1da8 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/ImportToggleAliasIntention/after.py.template @@ -0,0 +1,2 @@ +from urllib import url2pathname as u2p +name = u2p("/") diff --git a/python/edu/resources/intentionDescriptions/ImportToggleAliasIntention/before.py.template b/python/edu/resources/intentionDescriptions/ImportToggleAliasIntention/before.py.template new file mode 100644 index 000000000000..6db525770030 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/ImportToggleAliasIntention/before.py.template @@ -0,0 +1,2 @@ +from urllib import url2pathname +name = url2pathname("/") diff --git a/python/edu/resources/intentionDescriptions/ImportToggleAliasIntention/description.html b/python/edu/resources/intentionDescriptions/ImportToggleAliasIntention/description.html new file mode 100644 index 000000000000..de5fc8167a1c --- /dev/null +++ b/python/edu/resources/intentionDescriptions/ImportToggleAliasIntention/description.html @@ -0,0 +1,8 @@ + + + +This intention allows to add or remove an alias from an import element, renaming references accordingly. +Works both for import ... as ... and from ... import ... as statements. + + + diff --git a/python/edu/resources/intentionDescriptions/PyConvertLambdaToFunctionIntention/after.py.template b/python/edu/resources/intentionDescriptions/PyConvertLambdaToFunctionIntention/after.py.template new file mode 100644 index 000000000000..4429ea5a8361 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PyConvertLambdaToFunctionIntention/after.py.template @@ -0,0 +1,7 @@ +def func2(x, y): + return (x+y)/y + +def func(seq): + ... + newlist = reduce(func2, seq) + ... diff --git a/python/edu/resources/intentionDescriptions/PyConvertLambdaToFunctionIntention/before.py.template b/python/edu/resources/intentionDescriptions/PyConvertLambdaToFunctionIntention/before.py.template new file mode 100644 index 000000000000..fd61cfd76461 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PyConvertLambdaToFunctionIntention/before.py.template @@ -0,0 +1,4 @@ +def func(seq): + ... + newlist = reduce(lambda x, y: (x+y)/y, seq) + ... diff --git a/python/edu/resources/intentionDescriptions/PyConvertLambdaToFunctionIntention/description.html b/python/edu/resources/intentionDescriptions/PyConvertLambdaToFunctionIntention/description.html new file mode 100644 index 000000000000..2e58675974a3 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PyConvertLambdaToFunctionIntention/description.html @@ -0,0 +1,7 @@ + + + + This intention converts lambda function to function definition statement. + + + \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/PyConvertMethodToPropertyIntention/after.py.template b/python/edu/resources/intentionDescriptions/PyConvertMethodToPropertyIntention/after.py.template new file mode 100644 index 000000000000..1c8040301451 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PyConvertMethodToPropertyIntention/after.py.template @@ -0,0 +1,13 @@ +class MyClass(object): + """ + My class to show intention. + """ + def __init__(self): + self._x = None + + @property + def x(self): + return self._x + + +x = MyClass().x \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/PyConvertMethodToPropertyIntention/before.py.template b/python/edu/resources/intentionDescriptions/PyConvertMethodToPropertyIntention/before.py.template new file mode 100644 index 000000000000..7940289de5cb --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PyConvertMethodToPropertyIntention/before.py.template @@ -0,0 +1,12 @@ +class MyClass(object): + """ + My class to show intention. + """ + def __init__(self): + self._x = None + + def x(self): + return self._x + + +x = MyClass().x() \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/PyConvertMethodToPropertyIntention/description.html b/python/edu/resources/intentionDescriptions/PyConvertMethodToPropertyIntention/description.html new file mode 100644 index 000000000000..82ae5ebfe544 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PyConvertMethodToPropertyIntention/description.html @@ -0,0 +1,5 @@ + + +This intention converts method to property. + + \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/PyConvertStaticMethodToFunctionIntention/after.py.template b/python/edu/resources/intentionDescriptions/PyConvertStaticMethodToFunctionIntention/after.py.template new file mode 100644 index 000000000000..f393b5ef1e73 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PyConvertStaticMethodToFunctionIntention/after.py.template @@ -0,0 +1,14 @@ +class MyClass(object): + """ + My class to show intention. + """ + + def __init__(self): + self.a = 1 + +def my_static_method(): + import code + import time + + time.sleep(100) + print code diff --git a/python/edu/resources/intentionDescriptions/PyConvertStaticMethodToFunctionIntention/before.py.template b/python/edu/resources/intentionDescriptions/PyConvertStaticMethodToFunctionIntention/before.py.template new file mode 100644 index 000000000000..a2e4b7985e54 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PyConvertStaticMethodToFunctionIntention/before.py.template @@ -0,0 +1,15 @@ +class MyClass(object): + """ + My class to show intention. + """ + + def __init__(self): + self.a = 1 + + @staticmethod + def my_static_method(): + import code + import time + + time.sleep(100) + print code diff --git a/python/edu/resources/intentionDescriptions/PyConvertStaticMethodToFunctionIntention/description.html b/python/edu/resources/intentionDescriptions/PyConvertStaticMethodToFunctionIntention/description.html new file mode 100644 index 000000000000..ea7e64f10d6b --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PyConvertStaticMethodToFunctionIntention/description.html @@ -0,0 +1,5 @@ + + +This intention converts static method to function. + + \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/PyConvertTripleQuotedStringIntention/after.py.template b/python/edu/resources/intentionDescriptions/PyConvertTripleQuotedStringIntention/after.py.template new file mode 100644 index 000000000000..af439511d107 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PyConvertTripleQuotedStringIntention/after.py.template @@ -0,0 +1,3 @@ +a = ("This line is ok," "\n" + "but \"this\" includes far too much" "\n" + "whitespace at the start") \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/PyConvertTripleQuotedStringIntention/before.py.template b/python/edu/resources/intentionDescriptions/PyConvertTripleQuotedStringIntention/before.py.template new file mode 100644 index 000000000000..b556824b48f0 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PyConvertTripleQuotedStringIntention/before.py.template @@ -0,0 +1,3 @@ +a = """This line is ok, + but "this" includes far too much + whitespace at the start""" \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/PyConvertTripleQuotedStringIntention/description.html b/python/edu/resources/intentionDescriptions/PyConvertTripleQuotedStringIntention/description.html new file mode 100644 index 000000000000..a75a51a90fbf --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PyConvertTripleQuotedStringIntention/description.html @@ -0,0 +1,7 @@ + + + + This intention converts triple-quoted string to single-quoted. + + + \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/PyDemorganIntention/after.py.template b/python/edu/resources/intentionDescriptions/PyDemorganIntention/after.py.template new file mode 100644 index 000000000000..de9e125e7530 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PyDemorganIntention/after.py.template @@ -0,0 +1,2 @@ +if not (not a and not b): + pass \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/PyDemorganIntention/before.py.template b/python/edu/resources/intentionDescriptions/PyDemorganIntention/before.py.template new file mode 100644 index 000000000000..1a0e3f300de4 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PyDemorganIntention/before.py.template @@ -0,0 +1,2 @@ +if a or b: + pass \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/PyDemorganIntention/description.html b/python/edu/resources/intentionDescriptions/PyDemorganIntention/description.html new file mode 100644 index 000000000000..4dfbca1bdc31 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PyDemorganIntention/description.html @@ -0,0 +1,14 @@ + + + +This intention replaces either +
+a or b with not(not a and not b) or
+a and b with not(not a or not b)
+
+ + +inside boolean expression. + + + \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/PyDictConstructorToLiteralFormIntention/after.py.template b/python/edu/resources/intentionDescriptions/PyDictConstructorToLiteralFormIntention/after.py.template new file mode 100644 index 000000000000..684a858f604c --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PyDictConstructorToLiteralFormIntention/after.py.template @@ -0,0 +1 @@ +{'a': 3, 'b': 5} \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/PyDictConstructorToLiteralFormIntention/before.py.template b/python/edu/resources/intentionDescriptions/PyDictConstructorToLiteralFormIntention/before.py.template new file mode 100644 index 000000000000..2bfbfb98c348 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PyDictConstructorToLiteralFormIntention/before.py.template @@ -0,0 +1 @@ +dict(a=3, b=5) \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/PyDictConstructorToLiteralFormIntention/description.html b/python/edu/resources/intentionDescriptions/PyDictConstructorToLiteralFormIntention/description.html new file mode 100644 index 000000000000..ee5f619cd7f4 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PyDictConstructorToLiteralFormIntention/description.html @@ -0,0 +1,7 @@ + + + + This intention converts translation from dict constructor to dict literal form. + + + \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/PyDictLiteralFormToConstructorIntention/after.py.template b/python/edu/resources/intentionDescriptions/PyDictLiteralFormToConstructorIntention/after.py.template new file mode 100644 index 000000000000..2bfbfb98c348 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PyDictLiteralFormToConstructorIntention/after.py.template @@ -0,0 +1 @@ +dict(a=3, b=5) \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/PyDictLiteralFormToConstructorIntention/before.py.template b/python/edu/resources/intentionDescriptions/PyDictLiteralFormToConstructorIntention/before.py.template new file mode 100644 index 000000000000..684a858f604c --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PyDictLiteralFormToConstructorIntention/before.py.template @@ -0,0 +1 @@ +{'a': 3, 'b': 5} \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/PyDictLiteralFormToConstructorIntention/description.html b/python/edu/resources/intentionDescriptions/PyDictLiteralFormToConstructorIntention/description.html new file mode 100644 index 000000000000..9af5246228d3 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PyDictLiteralFormToConstructorIntention/description.html @@ -0,0 +1,7 @@ + + + + This intention converts translation from dict literal form to dict constructor. + + + \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/PyFlipComparisonIntention/after.py.template b/python/edu/resources/intentionDescriptions/PyFlipComparisonIntention/after.py.template new file mode 100644 index 000000000000..37b79e3f1d30 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PyFlipComparisonIntention/after.py.template @@ -0,0 +1,2 @@ +if a > b: + return a \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/PyFlipComparisonIntention/before.py.template b/python/edu/resources/intentionDescriptions/PyFlipComparisonIntention/before.py.template new file mode 100644 index 000000000000..1814460d6f27 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PyFlipComparisonIntention/before.py.template @@ -0,0 +1,2 @@ +if b < a: + return a \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/PyFlipComparisonIntention/description.html b/python/edu/resources/intentionDescriptions/PyFlipComparisonIntention/description.html new file mode 100644 index 000000000000..c6b67f5acfe2 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PyFlipComparisonIntention/description.html @@ -0,0 +1,7 @@ + + + + This intention swaps the operands of a comparison expression. + + + \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/PyGenerateDocstringIntention/after.py.template b/python/edu/resources/intentionDescriptions/PyGenerateDocstringIntention/after.py.template new file mode 100644 index 000000000000..bf0cffa3e944 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PyGenerateDocstringIntention/after.py.template @@ -0,0 +1,7 @@ +def foo(a, b): + """ + :param a: + :param b: + :return: + """ + pass \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/PyGenerateDocstringIntention/before.py.template b/python/edu/resources/intentionDescriptions/PyGenerateDocstringIntention/before.py.template new file mode 100644 index 000000000000..7898e8a5a596 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PyGenerateDocstringIntention/before.py.template @@ -0,0 +1,2 @@ +def foo(a,b): + pass \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/PyGenerateDocstringIntention/description.html b/python/edu/resources/intentionDescriptions/PyGenerateDocstringIntention/description.html new file mode 100644 index 000000000000..87e9bb7c4b80 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PyGenerateDocstringIntention/description.html @@ -0,0 +1,7 @@ + + + + This intention generates documentation string stub. + + + \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/PyJoinIfIntention/after.py.template b/python/edu/resources/intentionDescriptions/PyJoinIfIntention/after.py.template new file mode 100644 index 000000000000..e2fcd5989953 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PyJoinIfIntention/after.py.template @@ -0,0 +1,2 @@ +if a and b: + return \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/PyJoinIfIntention/before.py.template b/python/edu/resources/intentionDescriptions/PyJoinIfIntention/before.py.template new file mode 100644 index 000000000000..c680e979fc94 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PyJoinIfIntention/before.py.template @@ -0,0 +1,3 @@ +if a: + if b: + return \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/PyJoinIfIntention/description.html b/python/edu/resources/intentionDescriptions/PyJoinIfIntention/description.html new file mode 100644 index 000000000000..794e24c6b87c --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PyJoinIfIntention/description.html @@ -0,0 +1,7 @@ + + + + This intention converts two nested if statements into one if statement containing conjuction operation in it. + + + \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/PyNegateComparisonIntention/after.py.template b/python/edu/resources/intentionDescriptions/PyNegateComparisonIntention/after.py.template new file mode 100644 index 000000000000..89ed0f8d31a2 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PyNegateComparisonIntention/after.py.template @@ -0,0 +1,2 @@ +if a != b: + return a \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/PyNegateComparisonIntention/before.py.template b/python/edu/resources/intentionDescriptions/PyNegateComparisonIntention/before.py.template new file mode 100644 index 000000000000..7283065cd014 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PyNegateComparisonIntention/before.py.template @@ -0,0 +1,2 @@ +if not a == b: + return a \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/PyNegateComparisonIntention/description.html b/python/edu/resources/intentionDescriptions/PyNegateComparisonIntention/description.html new file mode 100644 index 000000000000..acb11fef7ac6 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PyNegateComparisonIntention/description.html @@ -0,0 +1,8 @@ + + + + This intention converts boolean comparison expression not(a negop b) into a op b. + Where op and negop are mutually inverse comparison operators, like == and !=. + + + \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/PyQuotedStringIntention/after.py.template b/python/edu/resources/intentionDescriptions/PyQuotedStringIntention/after.py.template new file mode 100644 index 000000000000..cbf185626543 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PyQuotedStringIntention/after.py.template @@ -0,0 +1 @@ +"\"Hello\" - said man." \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/PyQuotedStringIntention/before.py.template b/python/edu/resources/intentionDescriptions/PyQuotedStringIntention/before.py.template new file mode 100644 index 000000000000..904c28a98492 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PyQuotedStringIntention/before.py.template @@ -0,0 +1 @@ +'"Hello" - said man.' \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/PyQuotedStringIntention/description.html b/python/edu/resources/intentionDescriptions/PyQuotedStringIntention/description.html new file mode 100644 index 000000000000..cfd35d664f82 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PyQuotedStringIntention/description.html @@ -0,0 +1,7 @@ + + + + This intention allows conversion between single-quoted and double-quoted strings. + + + \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/PySplitIfIntention/after.py.template b/python/edu/resources/intentionDescriptions/PySplitIfIntention/after.py.template new file mode 100644 index 000000000000..c0f7384ea7c6 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PySplitIfIntention/after.py.template @@ -0,0 +1,3 @@ +if a: + if b: + return \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/PySplitIfIntention/before.py.template b/python/edu/resources/intentionDescriptions/PySplitIfIntention/before.py.template new file mode 100644 index 000000000000..9e841f5ee358 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PySplitIfIntention/before.py.template @@ -0,0 +1,2 @@ +if a and b: + return \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/PySplitIfIntention/description.html b/python/edu/resources/intentionDescriptions/PySplitIfIntention/description.html new file mode 100644 index 000000000000..643c3c79571f --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PySplitIfIntention/description.html @@ -0,0 +1,7 @@ + + + + This intention converts if statement containing conjuction operation into two nested if statements with simplified conditions. + + + \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/PyStringConcatenationToFormatIntention/after.py.template b/python/edu/resources/intentionDescriptions/PyStringConcatenationToFormatIntention/after.py.template new file mode 100644 index 000000000000..56cd89aef1c8 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PyStringConcatenationToFormatIntention/after.py.template @@ -0,0 +1 @@ +"a%sc" % (b) \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/PyStringConcatenationToFormatIntention/before.py.template b/python/edu/resources/intentionDescriptions/PyStringConcatenationToFormatIntention/before.py.template new file mode 100644 index 000000000000..96db9539c962 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PyStringConcatenationToFormatIntention/before.py.template @@ -0,0 +1 @@ +"a" + b + "c" \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/PyStringConcatenationToFormatIntention/description.html b/python/edu/resources/intentionDescriptions/PyStringConcatenationToFormatIntention/description.html new file mode 100644 index 000000000000..908daa21be31 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PyStringConcatenationToFormatIntention/description.html @@ -0,0 +1,8 @@ + + + + This intention replaces a string concatenation with the equivalent expression with string formatting operator usage + or with str.format() method call (for Python versions >= 2.7). + + + \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/PyTransformConditionalExpressionIntention/after.py.template b/python/edu/resources/intentionDescriptions/PyTransformConditionalExpressionIntention/after.py.template new file mode 100644 index 000000000000..24e157d011dc --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PyTransformConditionalExpressionIntention/after.py.template @@ -0,0 +1,4 @@ +if cond: + x = a +else: + x = b \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/PyTransformConditionalExpressionIntention/before.py.template b/python/edu/resources/intentionDescriptions/PyTransformConditionalExpressionIntention/before.py.template new file mode 100644 index 000000000000..601e958f079d --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PyTransformConditionalExpressionIntention/before.py.template @@ -0,0 +1 @@ +x = a if cond else b \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/PyTransformConditionalExpressionIntention/description.html b/python/edu/resources/intentionDescriptions/PyTransformConditionalExpressionIntention/description.html new file mode 100644 index 000000000000..c0552efb32e6 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PyTransformConditionalExpressionIntention/description.html @@ -0,0 +1,7 @@ + + + + This intention transforms conditional expression into if/else statement. + + + \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/PyYieldFromIntention/after.py.template b/python/edu/resources/intentionDescriptions/PyYieldFromIntention/after.py.template new file mode 100644 index 000000000000..773e592b09e0 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PyYieldFromIntention/after.py.template @@ -0,0 +1 @@ +yield from b \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/PyYieldFromIntention/before.py.template b/python/edu/resources/intentionDescriptions/PyYieldFromIntention/before.py.template new file mode 100644 index 000000000000..aa447f1e3b13 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PyYieldFromIntention/before.py.template @@ -0,0 +1,2 @@ +for a in b: + yield a \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/PyYieldFromIntention/description.html b/python/edu/resources/intentionDescriptions/PyYieldFromIntention/description.html new file mode 100644 index 000000000000..667a76164b3f --- /dev/null +++ b/python/edu/resources/intentionDescriptions/PyYieldFromIntention/description.html @@ -0,0 +1,5 @@ + + + This intention transforms explicit iteration with 'yield' into 'yield from'. + + \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/ReplaceListComprehensionWithForIntention/after.py.template b/python/edu/resources/intentionDescriptions/ReplaceListComprehensionWithForIntention/after.py.template new file mode 100644 index 000000000000..036345d596d1 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/ReplaceListComprehensionWithForIntention/after.py.template @@ -0,0 +1,3 @@ +a = [] +for x in xrange(5): + a.add(x) \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/ReplaceListComprehensionWithForIntention/before.py.template b/python/edu/resources/intentionDescriptions/ReplaceListComprehensionWithForIntention/before.py.template new file mode 100644 index 000000000000..eef9ef7bb5dd --- /dev/null +++ b/python/edu/resources/intentionDescriptions/ReplaceListComprehensionWithForIntention/before.py.template @@ -0,0 +1 @@ +a = [x for x in xrange(5)] \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/ReplaceListComprehensionWithForIntention/description.html b/python/edu/resources/intentionDescriptions/ReplaceListComprehensionWithForIntention/description.html new file mode 100644 index 000000000000..54da12726567 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/ReplaceListComprehensionWithForIntention/description.html @@ -0,0 +1,7 @@ + + + + This intention replaces a list comprehension with for loop. + + + \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/SpecifyTypeInDocstringIntention/after.html.template b/python/edu/resources/intentionDescriptions/SpecifyTypeInDocstringIntention/after.html.template new file mode 100644 index 000000000000..489da3518483 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/SpecifyTypeInDocstringIntention/after.html.template @@ -0,0 +1,5 @@ +def foo(var): + """ + @type var: string + """ + var. \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/SpecifyTypeInDocstringIntention/before.html.template b/python/edu/resources/intentionDescriptions/SpecifyTypeInDocstringIntention/before.html.template new file mode 100644 index 000000000000..fcdfce0ebee8 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/SpecifyTypeInDocstringIntention/before.html.template @@ -0,0 +1,2 @@ +def foo(var): + var. \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/SpecifyTypeInDocstringIntention/description.html b/python/edu/resources/intentionDescriptions/SpecifyTypeInDocstringIntention/description.html new file mode 100644 index 000000000000..9ff83f3b28bc --- /dev/null +++ b/python/edu/resources/intentionDescriptions/SpecifyTypeInDocstringIntention/description.html @@ -0,0 +1,7 @@ + + + + This intention used to specify type for expression in docstring. + + + \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/SpecifyTypeInPy3AnnotationsIntention/after.html.template b/python/edu/resources/intentionDescriptions/SpecifyTypeInPy3AnnotationsIntention/after.html.template new file mode 100644 index 000000000000..5f5265fc0bd6 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/SpecifyTypeInPy3AnnotationsIntention/after.html.template @@ -0,0 +1,2 @@ +def foo(var: object): + var. \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/SpecifyTypeInPy3AnnotationsIntention/before.html.template b/python/edu/resources/intentionDescriptions/SpecifyTypeInPy3AnnotationsIntention/before.html.template new file mode 100644 index 000000000000..fcdfce0ebee8 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/SpecifyTypeInPy3AnnotationsIntention/before.html.template @@ -0,0 +1,2 @@ +def foo(var): + var. \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/SpecifyTypeInPy3AnnotationsIntention/description.html b/python/edu/resources/intentionDescriptions/SpecifyTypeInPy3AnnotationsIntention/description.html new file mode 100644 index 000000000000..dce9825a7ef6 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/SpecifyTypeInPy3AnnotationsIntention/description.html @@ -0,0 +1,7 @@ + + + + This intention used to specify type for expression in Python 3 using type annotations. + + + \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/TypeAssertionIntention/after.html.template b/python/edu/resources/intentionDescriptions/TypeAssertionIntention/after.html.template new file mode 100644 index 000000000000..fd8ffc7fb452 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/TypeAssertionIntention/after.html.template @@ -0,0 +1,3 @@ +var = unknown() +assert isinstance(var, object) +var. \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/TypeAssertionIntention/before.html.template b/python/edu/resources/intentionDescriptions/TypeAssertionIntention/before.html.template new file mode 100644 index 000000000000..3ce25401f353 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/TypeAssertionIntention/before.html.template @@ -0,0 +1,2 @@ +var = unknown() +var. \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/TypeAssertionIntention/description.html b/python/edu/resources/intentionDescriptions/TypeAssertionIntention/description.html new file mode 100644 index 000000000000..be57cd3b6847 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/TypeAssertionIntention/description.html @@ -0,0 +1,7 @@ + + + + This intention used to specify type for expression by assertion. + + + \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/WrapTransTagIntention/after.html.template b/python/edu/resources/intentionDescriptions/WrapTransTagIntention/after.html.template new file mode 100644 index 000000000000..d26fc1258f3e --- /dev/null +++ b/python/edu/resources/intentionDescriptions/WrapTransTagIntention/after.html.template @@ -0,0 +1 @@ +{% blocktrans %}This will have {{ myvar }} inside.{% endblocktrans %} \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/WrapTransTagIntention/before.html.template b/python/edu/resources/intentionDescriptions/WrapTransTagIntention/before.html.template new file mode 100644 index 000000000000..e7f818a2378b --- /dev/null +++ b/python/edu/resources/intentionDescriptions/WrapTransTagIntention/before.html.template @@ -0,0 +1 @@ +This will have {{ myvar }} inside. \ No newline at end of file diff --git a/python/edu/resources/intentionDescriptions/WrapTransTagIntention/description.html b/python/edu/resources/intentionDescriptions/WrapTransTagIntention/description.html new file mode 100644 index 000000000000..6646903b6258 --- /dev/null +++ b/python/edu/resources/intentionDescriptions/WrapTransTagIntention/description.html @@ -0,0 +1,7 @@ + + + + This intention wraps selected template part with {% trans %} tag. + + + \ No newline at end of file diff --git a/python/edu/resources/liveTemplates/Python.xml b/python/edu/resources/liveTemplates/Python.xml new file mode 100644 index 000000000000..47928f82d8aa --- /dev/null +++ b/python/edu/resources/liveTemplates/Python.xml @@ -0,0 +1,329 @@ + + + + + + + + + + + + + + + + + + diff --git a/python/edu/resources/pycharm_core_about.png b/python/edu/resources/pycharm_core_about.png new file mode 100644 index 000000000000..6e92309f8b9b Binary files /dev/null and b/python/edu/resources/pycharm_core_about.png differ diff --git a/python/edu/resources/pycharm_core_about@2x.png b/python/edu/resources/pycharm_core_about@2x.png new file mode 100644 index 000000000000..a831870c6f19 Binary files /dev/null and b/python/edu/resources/pycharm_core_about@2x.png differ diff --git a/python/edu/resources/pycharm_core_logo.png b/python/edu/resources/pycharm_core_logo.png new file mode 100644 index 000000000000..3daabbaa1470 Binary files /dev/null and b/python/edu/resources/pycharm_core_logo.png differ diff --git a/python/edu/resources/pycharm_core_logo@2x.png b/python/edu/resources/pycharm_core_logo@2x.png new file mode 100644 index 000000000000..83bf65b55e3b Binary files /dev/null and b/python/edu/resources/pycharm_core_logo@2x.png differ diff --git a/python/edu/resources/tips/AdaptiveWelcome.html b/python/edu/resources/tips/AdaptiveWelcome.html new file mode 100644 index 000000000000..597ffaf6e402 --- /dev/null +++ b/python/edu/resources/tips/AdaptiveWelcome.html @@ -0,0 +1,13 @@ + + + + + +

Welcome to PyCharm Productivity Guide

+

+ PyCharm keeps track of which of its features you are using and will offer you some tips to let you know + about the features you may have missed. These tips will be shown while the startup process is going on. + You can always get back to them by selecting Help | Productivity Guide + on the menu bar.

+ + diff --git a/python/edu/resources/tips/AnnotationsAndDiffs.html b/python/edu/resources/tips/AnnotationsAndDiffs.html new file mode 100644 index 000000000000..309d032d6483 --- /dev/null +++ b/python/edu/resources/tips/AnnotationsAndDiffs.html @@ -0,0 +1,13 @@ + + + + + +

+ Version control annotations show the latest changes of each line in one click.

+

+ Just right-click an annotation and use the Show Diff command in the context menu.

+

+

+ + \ No newline at end of file diff --git a/python/edu/resources/tips/BreakpointSpeedmenu.html b/python/edu/resources/tips/BreakpointSpeedmenu.html new file mode 100644 index 000000000000..5a03f23734a0 --- /dev/null +++ b/python/edu/resources/tips/BreakpointSpeedmenu.html @@ -0,0 +1,12 @@ + + + + + +

+ Right-clicking on a breakpoint (in the left gutter) invokes the context menu where + you can quickly enable/disable the breakpoint or adjust its properties.

+

+

+ + diff --git a/python/edu/resources/tips/BuiltInServer.html b/python/edu/resources/tips/BuiltInServer.html new file mode 100644 index 000000000000..4515f0406f56 --- /dev/null +++ b/python/edu/resources/tips/BuiltInServer.html @@ -0,0 +1,16 @@ + + + + + + + +

It is very easy to change the built-in web server port (File | Settings – Debugger – JavaScript), +and use the "Built-in server port" spinner to set the new value.

+

+

Next, open an HTML page in your browser and see it running on the defined port.

+ + + + + diff --git a/python/edu/resources/tips/CamelHumpsInCodeCompletion.html b/python/edu/resources/tips/CamelHumpsInCodeCompletion.html new file mode 100644 index 000000000000..610f91da547e --- /dev/null +++ b/python/edu/resources/tips/CamelHumpsInCodeCompletion.html @@ -0,0 +1,11 @@ + + + + + +

+ When in the Code Completion lookup, you can ease the search by filtering the list with the help of the "camel words" prefixes.

+

+

+ + diff --git a/python/edu/resources/tips/CamelPrefixesInNavigationPopups.html b/python/edu/resources/tips/CamelPrefixesInNavigationPopups.html new file mode 100644 index 000000000000..cae5bf207ab9 --- /dev/null +++ b/python/edu/resources/tips/CamelPrefixesInNavigationPopups.html @@ -0,0 +1,17 @@ + + + + + + + +

When in the Go to Class, + Go to Symbol, or + Go to File popup, + you can ease the search by filtering the lookup list with the help of the "camel words" prefixes.

+

+ + + + + diff --git a/python/edu/resources/tips/CancelByControlArrows.html b/python/edu/resources/tips/CancelByControlArrows.html new file mode 100644 index 000000000000..2433e56796a3 --- /dev/null +++ b/python/edu/resources/tips/CancelByControlArrows.html @@ -0,0 +1,12 @@ + + + + + +

+ When an autopopup completion is active, + &shortcut:EditorLookupDown; and &shortcut:EditorLookupUp; + will close it and move the caret down or up in the editor. +

+ + diff --git a/python/edu/resources/tips/ChangeSorting.html b/python/edu/resources/tips/ChangeSorting.html new file mode 100644 index 000000000000..152e182b5dfc --- /dev/null +++ b/python/edu/resources/tips/ChangeSorting.html @@ -0,0 +1,11 @@ + + + + + +

+ You can switch between sorting completion variants by relevance or alphabetically by using an icon at the bottom right: +

+

+ + diff --git a/python/edu/resources/tips/ChangesView.html b/python/edu/resources/tips/ChangesView.html new file mode 100644 index 000000000000..73d19bbd87a1 --- /dev/null +++ b/python/edu/resources/tips/ChangesView.html @@ -0,0 +1,13 @@ + + + + + +

The Changes tool window shows all deleted, modified, and unversioned files in a single view. +Use &shortcut:ActivateChangesToolWindow; keyboard shortcut to show or hide this tool window.

+

From the Changes tool window you can perform all the necessary version control actions: commit changes, manage changelists, put resources under version control, examine differences and more.

+ + + + + diff --git a/python/edu/resources/tips/CheckRegExp.html b/python/edu/resources/tips/CheckRegExp.html new file mode 100644 index 000000000000..d231480db17c --- /dev/null +++ b/python/edu/resources/tips/CheckRegExp.html @@ -0,0 +1,13 @@ + + + + + +

The format of a regular expression can be rather complicated. +To make sure you didn't miss some slash of quotation mark, place the caret +somewhere in the expression you want to check, and press &shortcut:ShowIntentionActions;.

+

In the pop-up frame type a string that you think should match your regular expression. If the background turns green, you are lucky. If it turns red, then you have to look for a mistake.

+

+

+ + \ No newline at end of file diff --git a/python/edu/resources/tips/ClassNameCompletion.html b/python/edu/resources/tips/ClassNameCompletion.html new file mode 100644 index 000000000000..cdeb6602a9ff --- /dev/null +++ b/python/edu/resources/tips/ClassNameCompletion.html @@ -0,0 +1,14 @@ + + + + + +

+ A special variant of the Code Completion feature invoked by pressing &shortcut:CodeCompletion; twice allows you to + complete the name of any class + no matter if it was imported in the current file or not. + If the class is not imported yet, the import statement is generated automatically.

+

+

+ + diff --git a/python/edu/resources/tips/ClipboardStack.html b/python/edu/resources/tips/ClipboardStack.html new file mode 100644 index 000000000000..1c5e00890bec --- /dev/null +++ b/python/edu/resources/tips/ClipboardStack.html @@ -0,0 +1,12 @@ + + + + + + + +

Use the &shortcut:PasteMultiple; shortcut to choose and insert recent clipboard contents into the text.

+ + + + diff --git a/python/edu/resources/tips/CloseOthers.html b/python/edu/resources/tips/CloseOthers.html new file mode 100644 index 000000000000..ab5beb58f6e3 --- /dev/null +++ b/python/edu/resources/tips/CloseOthers.html @@ -0,0 +1,15 @@ + + + + + +

+ There are two ways of closing all tabs in the editor, except the current one:

+ +

+

+ + diff --git a/python/edu/resources/tips/CodeCompletion.html b/python/edu/resources/tips/CodeCompletion.html new file mode 100644 index 000000000000..351c332e55a8 --- /dev/null +++ b/python/edu/resources/tips/CodeCompletion.html @@ -0,0 +1,15 @@ + + + + + +

+ The Code Completion feature lets you quickly complete different kinds of statements + in the code. + For example, start typing a class name and press &shortcut:CodeCompletion; + to complete it. + When multiple choices are available, they are shown in the lookup list.

+

+

+ + diff --git a/python/edu/resources/tips/CodeCompletionInSearch.html b/python/edu/resources/tips/CodeCompletionInSearch.html new file mode 100644 index 000000000000..165a58883779 --- /dev/null +++ b/python/edu/resources/tips/CodeCompletionInSearch.html @@ -0,0 +1,17 @@ + + + + + + + +

When you are finding text in the current file (&shortcut:Find;), you don't need to type the whole search string: + Basic Code Completion is available in the search field. Start typing, press &shortcut:CodeCompletion;, and + select the desired string from the suggestion list.

+ +

+ + + + + diff --git a/python/edu/resources/tips/CodeCompletionMiddle.html b/python/edu/resources/tips/CodeCompletionMiddle.html new file mode 100644 index 000000000000..016a0749554d --- /dev/null +++ b/python/edu/resources/tips/CodeCompletionMiddle.html @@ -0,0 +1,17 @@ + + + + + + + +

When using basic code completion (&shortcut:CodeCompletion;), +type any characters that exist anywhere in an identifier. +

+ +

+ + + + + diff --git a/python/edu/resources/tips/CodeCompletionNoShift.html b/python/edu/resources/tips/CodeCompletionNoShift.html new file mode 100644 index 000000000000..b9128ec74cf5 --- /dev/null +++ b/python/edu/resources/tips/CodeCompletionNoShift.html @@ -0,0 +1,16 @@ + + + + + +

+ When using basic code completion (&shortcut:CodeCompletion;), + you don't need to type upper-case letters in CamelHump names. + It is enough to type the initial letters of the camel names in lower case, and they will be smartly recognized.

+

+

+

This behavior is enabled, if None is selected from the +Case sensitive completion drop-down list (the +Code Completion page of the Editor settings). + + diff --git a/python/edu/resources/tips/ColorEditingInCss.html b/python/edu/resources/tips/ColorEditingInCss.html new file mode 100644 index 000000000000..cf92ed9baa2f --- /dev/null +++ b/python/edu/resources/tips/ColorEditingInCss.html @@ -0,0 +1,19 @@ + + + + + + + +

&productName; + simplifies your work + with colors in CSS files. The color + properties have the icons of the corresponding color in the left gutter area of the editor. +

+

Click color icons to choose the desired color from the color picker.

+

+ + + + + diff --git a/python/edu/resources/tips/ColumnSelection.html b/python/edu/resources/tips/ColumnSelection.html new file mode 100644 index 000000000000..d7bddd0db0fc --- /dev/null +++ b/python/edu/resources/tips/ColumnSelection.html @@ -0,0 +1,11 @@ + + + + + +

You can easily make column selection by dragging your mouse pointer while keeping the + Alt key pressed. +

+

+ + diff --git a/python/edu/resources/tips/Comment.html b/python/edu/resources/tips/Comment.html new file mode 100644 index 000000000000..534d17231c9e --- /dev/null +++ b/python/edu/resources/tips/Comment.html @@ -0,0 +1,17 @@ + + + + + +

+ You can comment and uncomment lines of code using &shortcut:CommentByLineComment;.

+

+ &shortcut:CommentByLineComment; comments or uncomments the current line or + several selected lines with single line comments ({# in Django templates, + or # in Python scripts).

+

+ Pressing &shortcut:CommentByBlockComment; for a selected block of source code + in a Django template surrounds the block with {% comment %} + and {% endcomment %} tags.

+ + diff --git a/python/edu/resources/tips/CommitCtrlK.html b/python/edu/resources/tips/CommitCtrlK.html new file mode 100644 index 000000000000..488a75e29bc9 --- /dev/null +++ b/python/edu/resources/tips/CommitCtrlK.html @@ -0,0 +1,11 @@ + + + + + +

+ The keyboard shortcut Ctrl+K enables you to quickly invoke the Commit Changes dialog.

+

+ This dialog shows all modifications in project, gives summary information of file status and suggests improvements before check-in.

+ + diff --git a/python/edu/resources/tips/CompletionInHTML.html b/python/edu/resources/tips/CompletionInHTML.html new file mode 100644 index 000000000000..3b39387f5c7a --- /dev/null +++ b/python/edu/resources/tips/CompletionInHTML.html @@ -0,0 +1,17 @@ + + + + + + + +

You can use Basic Completion + (&shortcut:CodeCompletion;) in HTML, CSS and JavaScript files, for completing attributes, + parameters, tags, selectors, etc.

+

+

+ + + + + diff --git a/python/edu/resources/tips/ConfiguringTerminal.html b/python/edu/resources/tips/ConfiguringTerminal.html new file mode 100644 index 000000000000..c393ea6575b7 --- /dev/null +++ b/python/edu/resources/tips/ConfiguringTerminal.html @@ -0,0 +1,16 @@ + + + + + + + +

For the embedded local terminal, you can define your favorite shell, +default tab name, and other settings. +Choose +File | Settings (Windows/*nix) or +PyCharm | Preferences (Mac) +on the main menu, and then open the page Terminal.

+ + + diff --git a/python/edu/resources/tips/Consoles.html b/python/edu/resources/tips/Consoles.html new file mode 100644 index 000000000000..1514b6efc50c --- /dev/null +++ b/python/edu/resources/tips/Consoles.html @@ -0,0 +1,11 @@ + + + + + +

+ You can work in the Python or Django shell without leaving the IDE. + Just choose Run Python Console or Run Django Console + in the Tools menu.

+ + \ No newline at end of file diff --git a/python/edu/resources/tips/ConsolesCodeCompletion.html b/python/edu/resources/tips/ConsolesCodeCompletion.html new file mode 100644 index 000000000000..8c4cbb33dd3d --- /dev/null +++ b/python/edu/resources/tips/ConsolesCodeCompletion.html @@ -0,0 +1,14 @@ + + + + + +

+ Working in the interactive consoles, you don't need to memorise the command line syntax or available functions. + Instead, you can use the familiar code completion &shortcut:CodeCompletion;. + Moreover, from within the lookup list, you can press &shortcut:QuickJavaDoc; + to view the item's documentation.

+

+

+ + \ No newline at end of file diff --git a/python/edu/resources/tips/ConsolesHistory.html b/python/edu/resources/tips/ConsolesHistory.html new file mode 100644 index 000000000000..8fe19a578742 --- /dev/null +++ b/python/edu/resources/tips/ConsolesHistory.html @@ -0,0 +1,13 @@ + + + + + +

+ If you have already spent some time working in the interactive consoles, + you don't need to re-type the previously entered commands to repeat them. + Instead, press &shortcut:EditorScrollUp; and + &shortcut:EditorScrollDown; to scroll through + the history of commands.

+ + diff --git a/python/edu/resources/tips/CopyWithNoSelection.html b/python/edu/resources/tips/CopyWithNoSelection.html new file mode 100644 index 000000000000..d7321e4e8379 --- /dev/null +++ b/python/edu/resources/tips/CopyWithNoSelection.html @@ -0,0 +1,13 @@ + + + + + + + +

+If nothing is selected in the editor, and you press &shortcut:$Copy;, then the whole line at caret is copied to the clipboard. +

+ + + diff --git a/python/edu/resources/tips/CtrlD.html b/python/edu/resources/tips/CtrlD.html new file mode 100644 index 000000000000..5b676b83275b --- /dev/null +++ b/python/edu/resources/tips/CtrlD.html @@ -0,0 +1,14 @@ + + + + + + + +

&shortcut:EditorDuplicate; in the editor duplicates the selected block or the current line + when no block is selected.

+ + + + + diff --git a/python/edu/resources/tips/CtrlDotInLookups.html b/python/edu/resources/tips/CtrlDotInLookups.html new file mode 100644 index 000000000000..9cc5b377d169 --- /dev/null +++ b/python/edu/resources/tips/CtrlDotInLookups.html @@ -0,0 +1,15 @@ + + + + + + + +

+ When using autopopup Code Completion, you can select the first item using &shortcut:EditorChooseLookupItemDot;. + The selected name is automatically entered in the editor followed by dot.

+ + + + + diff --git a/python/edu/resources/tips/CtrlShiftI.html b/python/edu/resources/tips/CtrlShiftI.html new file mode 100644 index 000000000000..59f9dd57209e --- /dev/null +++ b/python/edu/resources/tips/CtrlShiftI.html @@ -0,0 +1,17 @@ + + + + + + + +

Use &shortcut:QuickImplementations; + (View | Quick Definition), + to quickly review definition or content of the symbol at caret, without the need to open it + in a new editor tab.

+

+ + + + + diff --git a/python/edu/resources/tips/CtrlShiftIForLookup.html b/python/edu/resources/tips/CtrlShiftIForLookup.html new file mode 100644 index 000000000000..9a783314e0a2 --- /dev/null +++ b/python/edu/resources/tips/CtrlShiftIForLookup.html @@ -0,0 +1,16 @@ + + + + + + + +

The Quick Definition Viewer + (&shortcut:QuickImplementations;) can be also used for items in lookup lists that appear on code + completion and class/file/symbol navigaton commands.

+

+ + + + + \ No newline at end of file diff --git a/python/edu/resources/tips/CtrlW.html b/python/edu/resources/tips/CtrlW.html new file mode 100644 index 000000000000..34e30540cb80 --- /dev/null +++ b/python/edu/resources/tips/CtrlW.html @@ -0,0 +1,15 @@ + + + + + + + +

&shortcut:EditorSelectWord; (extend selection) in the editor selects the word at the caret + and then selects expanding areas of the source code. For example, it may select a method name, + then the expression that calls this method, then the whole statement, then the containing block, etc. + You can also select the word at the caret and the expanding areas of the source code by double-clicking the target areas in the editor.

+ + + + diff --git a/python/edu/resources/tips/DirDiff.html b/python/edu/resources/tips/DirDiff.html new file mode 100644 index 000000000000..b03166b9689e --- /dev/null +++ b/python/edu/resources/tips/DirDiff.html @@ -0,0 +1,10 @@ + + + + + +

+ To compare two directories, select one or both of them in the Project view and + press &shortcut:CompareDirs;.

+ + \ No newline at end of file diff --git a/python/edu/resources/tips/DotEtcInLookups.html b/python/edu/resources/tips/DotEtcInLookups.html new file mode 100644 index 000000000000..149bbaad6aab --- /dev/null +++ b/python/edu/resources/tips/DotEtcInLookups.html @@ -0,0 +1,18 @@ + + + + + + + +

+ When using Code Completion, you can accept the currently highlighted selection in the popup list + with the period character (.), comma (,), + semicolon (;), space and other characters.

+

+ The selected name is automatically entered in the editor followed by the entered character.

+ + + + + diff --git a/python/edu/resources/tips/DragToOpen.html b/python/edu/resources/tips/DragToOpen.html new file mode 100644 index 000000000000..6d788aebb3e7 --- /dev/null +++ b/python/edu/resources/tips/DragToOpen.html @@ -0,0 +1,13 @@ + + + + + + +

You can easily open an external file for editing, if you just drag it from the Explorer or Finder to the editor.

+ + +

+ + + diff --git a/python/edu/resources/tips/EditRegExp.html b/python/edu/resources/tips/EditRegExp.html new file mode 100644 index 000000000000..6a14a46a28ca --- /dev/null +++ b/python/edu/resources/tips/EditRegExp.html @@ -0,0 +1,13 @@ + + + + + + +

You can avoid escaping backslashes in your regular expressions. Start typing a regular expression, then press &shortcut:ShowIntentionActions; and choose Edit RegExp. +The regular expression opens in a separate tab in the editor, where you can type backslashes as is.

+

All changes are synchronized with the original regular expression, and escapes are presented automatically. When ready, just press &shortcut:EditorEscape; to close the regular expression editor.

+

+ + + diff --git a/python/edu/resources/tips/Emmet.html b/python/edu/resources/tips/Emmet.html new file mode 100644 index 000000000000..6dcec74020a3 --- /dev/null +++ b/python/edu/resources/tips/Emmet.html @@ -0,0 +1,11 @@ + + + + + +

Speed up HTML, XML or CSS development with Emmet.

+

Enable this framework in the Emmet(Zen Coding) page of the Settings/Preferences dialog:

+

+

+ + \ No newline at end of file diff --git a/python/edu/resources/tips/EnterDirectoryInGotoFile.html b/python/edu/resources/tips/EnterDirectoryInGotoFile.html new file mode 100644 index 000000000000..71704d4906f3 --- /dev/null +++ b/python/edu/resources/tips/EnterDirectoryInGotoFile.html @@ -0,0 +1,17 @@ + + + + + + + +

You can jump directly to any deeply buried file, if you press &shortcut:GotoFile;, and type just a couple +of characters of the enclosing directories and file names:

+ +

+ +

Use either a slash or a backslash as a delimiter.

+ + + + \ No newline at end of file diff --git a/python/edu/resources/tips/Escape.html b/python/edu/resources/tips/Escape.html new file mode 100644 index 000000000000..949dec64329d --- /dev/null +++ b/python/edu/resources/tips/Escape.html @@ -0,0 +1,15 @@ + + + + + + + +

The &shortcut:EditorEscape; key in any tool window moves the focus to the editor.

+

&shortcut:HideActiveWindow; moves the focus to the editor and also hides the current (or last active) tool window.

+

The &shortcut:JumpToLastWindow; key moves the focus from the editor to the last focused tool window.

+ + + + + diff --git a/python/edu/resources/tips/EvaluateExpressionInEditor.html b/python/edu/resources/tips/EvaluateExpressionInEditor.html new file mode 100644 index 000000000000..09917ef01048 --- /dev/null +++ b/python/edu/resources/tips/EvaluateExpressionInEditor.html @@ -0,0 +1,15 @@ + + + + + + + +

To easily evaluate the value of any expression while debugging the program, select its text in the editor + (you might want to press a &shortcut:EditorSelectWord; a few times to efficiently perform this operation) + and then press &shortcut:EvaluateExpression;.

+ + + + + diff --git a/python/edu/resources/tips/ExtractVariable.html b/python/edu/resources/tips/ExtractVariable.html new file mode 100644 index 000000000000..06ce96f45675 --- /dev/null +++ b/python/edu/resources/tips/ExtractVariable.html @@ -0,0 +1,19 @@ + + + + + + + +

The Extract Variable + refactoring helps you simplify complicated statements in your code. For example, in the code fragment below, + you can select an expression in the code, and press &shortcut:IntroduceVariable; (Refactor | Extract | Variable).

+

+

+ This will result in the following:

+

+ + + + + diff --git a/python/edu/resources/tips/FileStructurePopup.html b/python/edu/resources/tips/FileStructurePopup.html new file mode 100644 index 000000000000..f0f94c6a3e18 --- /dev/null +++ b/python/edu/resources/tips/FileStructurePopup.html @@ -0,0 +1,17 @@ + + + + + + + +

You can quickly navigate in the currently edited file with &shortcut:FileStructurePopup; + (Navigate | File Structure).

+

It shows the list of members of the current class. Select an element you want to navigate to and press the + Enter key or the &shortcut:EditSource; key.

+

To easily locate an item in the list, just start typing its name.

+ + + + + diff --git a/python/edu/resources/tips/FindReplaceToggle.html b/python/edu/resources/tips/FindReplaceToggle.html new file mode 100644 index 000000000000..60d7b31dc700 --- /dev/null +++ b/python/edu/resources/tips/FindReplaceToggle.html @@ -0,0 +1,17 @@ + + + + + + +

It is very easy to toggle between find and replace functionality.

+

When you perform search and replace in a file, pressing &shortcut:Find; +shows the search pane. Pressing &shortcut:Replace; adds field, where you can type the replace string.

+ +

While in the Find in Path dialog, you can switch to +replace by pressing &shortcut:ReplaceInPath;. Same way, press &shortcut:FindInPath; to hide the +Replace with field, and switch to mere search.

+ + + + diff --git a/python/edu/resources/tips/FindUsages.html b/python/edu/resources/tips/FindUsages.html new file mode 100644 index 000000000000..a7162139a42f --- /dev/null +++ b/python/edu/resources/tips/FindUsages.html @@ -0,0 +1,12 @@ + + + + + +

+ You can quickly find all places where a particular class, method or variable is used in the whole project + by positioning the caret at the symbol's name or at its usage in code and pressing &shortcut:FindUsages; + (Find Usages + in the popup menu).

+ + diff --git a/python/edu/resources/tips/GoToAction.html b/python/edu/resources/tips/GoToAction.html new file mode 100644 index 000000000000..89a93e95e3f2 --- /dev/null +++ b/python/edu/resources/tips/GoToAction.html @@ -0,0 +1,16 @@ + + + + + + + +

To quickly find a menu command or toolbar action, you do not need to look through the menus. Just press + &shortcut:GotoAction; + (Help | Find Action on the main + menu) and start typing the name of the action. Choose the desired action from the suggestion list.

+ + + + + diff --git a/python/edu/resources/tips/GoToClass.html b/python/edu/resources/tips/GoToClass.html new file mode 100644 index 000000000000..2cdf5eb3f0d1 --- /dev/null +++ b/python/edu/resources/tips/GoToClass.html @@ -0,0 +1,16 @@ + + + + + +

+ To open any class in the editor quickly, press &shortcut:GotoClass; + (Navigate | Class) + and start typing the name of the class. Choose the class from a drop-down list that appears.

+

+

+

+ You can open any file in your project in a similar way by using &shortcut:GotoFile; + (Navigate | File)

+ + diff --git a/python/edu/resources/tips/GoToDeclaration.html b/python/edu/resources/tips/GoToDeclaration.html new file mode 100644 index 000000000000..7db07bbfdf96 --- /dev/null +++ b/python/edu/resources/tips/GoToDeclaration.html @@ -0,0 +1,17 @@ + + + + + + + +

To navigate to the declaration of a class, method or variable used somewhere in the code, + position the caret at the usage and press &shortcut:GotoDeclaration;. You can also click the mouse + on usages with the Ctrl + key pressed to jump to declarations.

+

+ + + + + diff --git a/python/edu/resources/tips/GoToInspection.html b/python/edu/resources/tips/GoToInspection.html new file mode 100644 index 000000000000..dabb6ef4fb51 --- /dev/null +++ b/python/edu/resources/tips/GoToInspection.html @@ -0,0 +1,16 @@ + + + + + + + +

To quickly find and run an inspection, press + &shortcut:RunInspection; + and start typing the name of the inspection or its group. Choose the desired inspection from the suggestion list and + then specify the desired scope.

+ + + + + diff --git a/python/edu/resources/tips/GoToSymbol.html b/python/edu/resources/tips/GoToSymbol.html new file mode 100644 index 000000000000..85d099fd8121 --- /dev/null +++ b/python/edu/resources/tips/GoToSymbol.html @@ -0,0 +1,17 @@ + + + + + + + +

To open any particular method or field in the editor quickly, press &shortcut:GotoSymbol; + (Navigate | Symbol) + and start typing its name.

+

Choose symbol from the drop-down list that appears.

+

+ + + + + diff --git a/python/edu/resources/tips/GotoLineInFile.html b/python/edu/resources/tips/GotoLineInFile.html new file mode 100644 index 000000000000..cc44b74064f1 --- /dev/null +++ b/python/edu/resources/tips/GotoLineInFile.html @@ -0,0 +1,16 @@ + + + + + +

+ To open any class or file in the editor at the desired line, press &shortcut:GotoFile; + (Navigate | File), + start typing the name, and choose the one from the suggestion list. + Then type the colon (:) and a line number.

+

+ The selected file will open with the caret at the specified line.

+

+

+ + diff --git a/python/edu/resources/tips/HierarchyBrowser.html b/python/edu/resources/tips/HierarchyBrowser.html new file mode 100644 index 000000000000..3fd2fc9c1678 --- /dev/null +++ b/python/edu/resources/tips/HierarchyBrowser.html @@ -0,0 +1,15 @@ + + + + + +

+ To see the inheritance hierarchy for a selected class, + press &shortcut:TypeHierarchy; + (Navigate | Type Hierarchy). + You can also invoke the hierarchy view right from the editor + to see the hierarchy for the currently edited class.

+

+

+ + diff --git a/python/edu/resources/tips/HighlightUsagesInFile.html b/python/edu/resources/tips/HighlightUsagesInFile.html new file mode 100644 index 000000000000..ea316136833b --- /dev/null +++ b/python/edu/resources/tips/HighlightUsagesInFile.html @@ -0,0 +1,16 @@ + + + + + + + +

Use &shortcut:HighlightUsagesInFile; (Edit | Find | Highlight Usages in File) + to quickly highlight usages of some variable in the current file.

+

Use &shortcut:FindNext; and &shortcut:FindPrevious; keys to navigate through highlighted usages.

+

Press &shortcut:EditorEscape; to remove highlighting.

+ + + + + diff --git a/python/edu/resources/tips/HorizontalScrolling.html b/python/edu/resources/tips/HorizontalScrolling.html new file mode 100644 index 000000000000..f70b0cd50c7c --- /dev/null +++ b/python/edu/resources/tips/HorizontalScrolling.html @@ -0,0 +1,10 @@ + + + + + +

+ Enable the horizontal scrolling with the mouse wheel by holding + the Shift key.

+ + \ No newline at end of file diff --git a/python/edu/resources/tips/ImageFileCompletion.html b/python/edu/resources/tips/ImageFileCompletion.html new file mode 100644 index 000000000000..cc6a5291b7ab --- /dev/null +++ b/python/edu/resources/tips/ImageFileCompletion.html @@ -0,0 +1,15 @@ + + + + + + + +

Use Basic Completion + (&shortcut:CodeCompletion;) within HTML, CSS and other files, for completing image file names.

+

+ + + + + diff --git a/python/edu/resources/tips/ImagesLookup.html b/python/edu/resources/tips/ImagesLookup.html new file mode 100644 index 000000000000..cad3862eef64 --- /dev/null +++ b/python/edu/resources/tips/ImagesLookup.html @@ -0,0 +1,16 @@ + + + + + + + +

You can quickly view the image referenced at caret by using the + Quick Definition + (&shortcut:QuickImplementations;). The underlying image will be opened in a popup instead of a separate editor tab.

+

+ + + + + diff --git a/python/edu/resources/tips/Interpreter.html b/python/edu/resources/tips/Interpreter.html new file mode 100644 index 000000000000..4f4c58f58657 --- /dev/null +++ b/python/edu/resources/tips/Interpreter.html @@ -0,0 +1,12 @@ + + + + + +

PyCharm allows configuring Python interpreters on the various stages of development:

+ + + diff --git a/python/edu/resources/tips/IssueNavigation.html b/python/edu/resources/tips/IssueNavigation.html new file mode 100644 index 000000000000..8f1bc7db088e --- /dev/null +++ b/python/edu/resources/tips/IssueNavigation.html @@ -0,0 +1,22 @@ + + + + + + + + +

&productName; lets you jump from your check-in comment to an issue in your task tracker.

+

All you have to do is to define issue navigation patterns on the + Version Control page of the Settings/Preferences + dialog:

+

+

When you commit a changelist, and type the check-in comment, make sure it matches one of your issue navigation patterns. + Later, when you browse through the changelists in the repository, such comments turn into hyperlinks:

+

+

Clicking a hyperlink brings you directly to an issue in your task tracker.

+ + + + + \ No newline at end of file diff --git a/python/edu/resources/tips/JoinLines.html b/python/edu/resources/tips/JoinLines.html new file mode 100644 index 000000000000..144035ddb624 --- /dev/null +++ b/python/edu/resources/tips/JoinLines.html @@ -0,0 +1,10 @@ + + + + + +

+ The &shortcut:EditorJoinLines; shortcut joins two lines + into one and removes unnecessary spaces to match your code style.

+ + diff --git a/python/edu/resources/tips/JumpToLastEdit.html b/python/edu/resources/tips/JumpToLastEdit.html new file mode 100644 index 000000000000..1438812f4e1d --- /dev/null +++ b/python/edu/resources/tips/JumpToLastEdit.html @@ -0,0 +1,15 @@ + + + + + + + +

&shortcut:JumpToLastChange; (Navigate | Last Edit Location) + brings you back to the last place where you made changes in the code.

+

Pressing &shortcut:JumpToLastChange; a few times moves you deeper into your changes history.

+ + + + + diff --git a/python/edu/resources/tips/LaunchConsole.html b/python/edu/resources/tips/LaunchConsole.html new file mode 100644 index 000000000000..5b2213c0c57d --- /dev/null +++ b/python/edu/resources/tips/LaunchConsole.html @@ -0,0 +1,15 @@ + + + + + +

+ While debugging, you might need an interactive console at hand... This is most easy. +During the debugging session, switch to the Debugger Console, +and then press the very lowest button in its toolbar. +

+

The console becomes interactive, and shows a prompt, where you can enter commands, and view output.

+

launch_console_in_debugger

+ + + diff --git a/python/edu/resources/tips/LineEndings.html b/python/edu/resources/tips/LineEndings.html new file mode 100644 index 000000000000..162eb9b1ede6 --- /dev/null +++ b/python/edu/resources/tips/LineEndings.html @@ -0,0 +1,12 @@ + + + + + +

To view which line separators style is used in the current file, +look at the Status Bar:

+ +

+

To change the current line ending style, just click the spinner.

+ + \ No newline at end of file diff --git a/python/edu/resources/tips/LineEndingsFolder.html b/python/edu/resources/tips/LineEndingsFolder.html new file mode 100644 index 000000000000..a7824801b636 --- /dev/null +++ b/python/edu/resources/tips/LineEndingsFolder.html @@ -0,0 +1,13 @@ + + + + + +

You do not need to open a file in the editor to change its line separator style. +Use the Project tool window instead: select one or more files, +or folders, point to File | Line Separators on the main menu, +and then choose the desired line ending style.

+

For a directory, new line separator applies recursively.

+

+ + \ No newline at end of file diff --git a/python/edu/resources/tips/LiveTemplates.html b/python/edu/resources/tips/LiveTemplates.html new file mode 100644 index 000000000000..be1d10b45a42 --- /dev/null +++ b/python/edu/resources/tips/LiveTemplates.html @@ -0,0 +1,20 @@ + + + + + +

+ Live Templates let you generate many typical code constructs in seconds. For example, type + for in a Django template

+

+

+

+ and then press the Tab key to see what happens.

+

+

+

+ Use the Tab key to move between the template fields.

+

See Live Templates page of the Settings / Preferences +dialog for more details.

+ + diff --git a/python/edu/resources/tips/LiveTemplatesDjango.html b/python/edu/resources/tips/LiveTemplatesDjango.html new file mode 100644 index 000000000000..4bd3fa725cfa --- /dev/null +++ b/python/edu/resources/tips/LiveTemplatesDjango.html @@ -0,0 +1,13 @@ + + + + + +

If you are going to use Django live templates, make sure that Django is selected +as the default Python template language in the Settings / Preferences dialog: +

+

+

+ + + diff --git a/python/edu/resources/tips/LiveTemplatesRestore.html b/python/edu/resources/tips/LiveTemplatesRestore.html new file mode 100755 index 000000000000..dd090591347f --- /dev/null +++ b/python/edu/resources/tips/LiveTemplatesRestore.html @@ -0,0 +1,12 @@ + + + + + + +

If you've changed a live template, it becomes blue. If you want to return to the +original text, right-click such a blue template, and choose +Restore defaults on the context menu. +

+ + diff --git a/python/edu/resources/tips/LocalVCS.html b/python/edu/resources/tips/LocalVCS.html new file mode 100644 index 000000000000..28811c18950a --- /dev/null +++ b/python/edu/resources/tips/LocalVCS.html @@ -0,0 +1,16 @@ + + + + + + + +

To see your local history of changes in a file, invoke + Local History | Show History + from the context menu. You can navigate through different file versions, see the differences and roll back to any previous version.

+

Use the same context menu item to see the history of changes on a directory. You will never lose any code with this feature!

+ + + + + diff --git a/python/edu/resources/tips/Managepy.html b/python/edu/resources/tips/Managepy.html new file mode 100644 index 000000000000..ca9250ea3acd --- /dev/null +++ b/python/edu/resources/tips/Managepy.html @@ -0,0 +1,18 @@ + + + + + +

+ The easiest way to run a utility of the manage.py task is to + choose Run manage.py Task in the + Tools menu, or press &shortcut:Django.RunManageTaskAction;.

+

+ As you type the name of the utility you want to run, the lookup list shrinks + to show the matching entries only.

+

+ If you type an asterisk, PyCharm will show the complete list of all the available tasks.

+

+

+ + diff --git a/python/edu/resources/tips/MenuItemsDescriptions.html b/python/edu/resources/tips/MenuItemsDescriptions.html new file mode 100644 index 000000000000..1739124a0073 --- /dev/null +++ b/python/edu/resources/tips/MenuItemsDescriptions.html @@ -0,0 +1,14 @@ + + + + + + + +

To help you learn the purpose of each item in the main menu, its short description is shown in the status + bar at the bottom of the application frame when you position the mouse pointer over this item.

+ + + + + diff --git a/python/edu/resources/tips/MethodSeparators.html b/python/edu/resources/tips/MethodSeparators.html new file mode 100644 index 000000000000..1ce1b039d762 --- /dev/null +++ b/python/edu/resources/tips/MethodSeparators.html @@ -0,0 +1,16 @@ + + + + + + + +

To show separator lines between methods in the editor, open the editor settings + and select the Show method separators check box in the + Appearance page.

+ +

+ + + + diff --git a/python/edu/resources/tips/MethodUpDown.html b/python/edu/resources/tips/MethodUpDown.html new file mode 100644 index 000000000000..0bf39a287674 --- /dev/null +++ b/python/edu/resources/tips/MethodUpDown.html @@ -0,0 +1,12 @@ + + + + + + + +

Use &shortcut:MethodUp; and &shortcut:MethodDown; keys to quickly move between methods in the editor.

+ + + + diff --git a/python/edu/resources/tips/MoveToChangelist.html b/python/edu/resources/tips/MoveToChangelist.html new file mode 100644 index 000000000000..440cc9c17ee2 --- /dev/null +++ b/python/edu/resources/tips/MoveToChangelist.html @@ -0,0 +1,17 @@ + + + + + + + + +

If you don't want to commit some of your changes to the repository, you can set them aside for a while, by moving + to a separate changelist, or by putting them to a shelf. Select such file in the Local tab of the Changes tool + window, and on the context menu choose Move to another changelist, + or Shelve Changes.

+ + + + + diff --git a/python/edu/resources/tips/MoveUpDown.html b/python/edu/resources/tips/MoveUpDown.html new file mode 100644 index 000000000000..0575c20e7c63 --- /dev/null +++ b/python/edu/resources/tips/MoveUpDown.html @@ -0,0 +1,28 @@ + + + + + +

+ The Code | Move Statement Up/Down action is useful for reorganizing the code lines + in your file, e.g., for bringing a variable declaration closer to the variable usage.

+

+ For example, select a code fragment and press &shortcut:MoveStatementUp; or + &shortcut:MoveStatementDown;.

+

+ Before:

+

+

+

+ After moving the lines up:

+

+

+

+ After moving the lines down:

+

+

+

+ When there is no selection, the line at the cursor will be moved.

+ + + diff --git a/python/edu/resources/tips/Multicursor.html b/python/edu/resources/tips/Multicursor.html new file mode 100755 index 000000000000..251d849acab1 --- /dev/null +++ b/python/edu/resources/tips/Multicursor.html @@ -0,0 +1,17 @@ + + + + + + + +

In &productName;, you can have multiple cursors. +Having pressed Alt, click the left mouse button +at the desired position to set additional cursors in the editor.

+

Press &shortcut:EditorEscape; to remove all the additional cursors +but one that resides at the line at caret.

+

+ + + + diff --git a/python/edu/resources/tips/Multicursor1.html b/python/edu/resources/tips/Multicursor1.html new file mode 100755 index 000000000000..21bf62ffbd90 --- /dev/null +++ b/python/edu/resources/tips/Multicursor1.html @@ -0,0 +1,13 @@ + + + + + + + +

Clone the cursor strictly upwards or downwards. To do that, +press &shortcut:GotoAction; twice, type +Clone caret, and then choose the desired action.

+

+ + diff --git a/python/edu/resources/tips/MultipleProjects.html b/python/edu/resources/tips/MultipleProjects.html new file mode 100644 index 000000000000..2efdd0852d09 --- /dev/null +++ b/python/edu/resources/tips/MultipleProjects.html @@ -0,0 +1,16 @@ + + + + + + + +

&productName; can work with several projects in one window. +To open a project in the same window with the already opened one, choose +Open directory, then in the Open project +dialog box, select the option +Open in current window, and select the check box +Add to currently opened projects.

+ + + diff --git a/python/edu/resources/tips/NavBar.html b/python/edu/resources/tips/NavBar.html new file mode 100644 index 000000000000..2029dc95e2b8 --- /dev/null +++ b/python/edu/resources/tips/NavBar.html @@ -0,0 +1,15 @@ + + + + + + + +

Navigation bar is a quick alternative to the Project view.

+

Use &shortcut:ShowNavBar; keyboard shortcut to show the navigation bar, and arrow keys to locate the necessary files or folders.

+ + + +

+ + diff --git a/python/edu/resources/tips/NavigateToFilePath.html b/python/edu/resources/tips/NavigateToFilePath.html new file mode 100644 index 000000000000..0df5aa5b9377 --- /dev/null +++ b/python/edu/resources/tips/NavigateToFilePath.html @@ -0,0 +1,16 @@ + + + + + + + +

Ctrl+Click (on Windows) or Cmd+Click (on MacOS) a tab in the editor to navigate to any part of the file path. +Select the necessary element in the drop-down, and the corresponding file path opens in an external browser +(e.g., in the Explorer, if your OS is Windows).

+

+ + + + + \ No newline at end of file diff --git a/python/edu/resources/tips/OverrideImplementMethods.html b/python/edu/resources/tips/OverrideImplementMethods.html new file mode 100644 index 000000000000..f9a4ecb5083c --- /dev/null +++ b/python/edu/resources/tips/OverrideImplementMethods.html @@ -0,0 +1,12 @@ + + + + + +

+ You can easily override the methods of the base class by pressing + &shortcut:OverrideMethods; (Code | Override Methods).

+

+

+ + diff --git a/python/edu/resources/tips/ParameterInfo.html b/python/edu/resources/tips/ParameterInfo.html new file mode 100644 index 000000000000..3cc6ab808a1b --- /dev/null +++ b/python/edu/resources/tips/ParameterInfo.html @@ -0,0 +1,17 @@ + + + + + + + +

If the cursor is between the parentheses of a method call, pressing &shortcut:ParameterInfo; brings up + a list of valid parameters.

+

+ + + + + + + diff --git a/python/edu/resources/tips/PreviewTODO.html b/python/edu/resources/tips/PreviewTODO.html new file mode 100644 index 000000000000..c7c9c2acb83a --- /dev/null +++ b/python/edu/resources/tips/PreviewTODO.html @@ -0,0 +1,13 @@ + + + + + + +

TODO tool window lets you preview each of the +encountered TODO items – just click the preview button on the toolbar.

+

+

+ + + diff --git a/python/edu/resources/tips/PyColorFiles.html b/python/edu/resources/tips/PyColorFiles.html new file mode 100644 index 000000000000..4ac26ed2e950 --- /dev/null +++ b/python/edu/resources/tips/PyColorFiles.html @@ -0,0 +1,15 @@ + + + + + +

+ You don't need to guess which __init__.py or + views.py you are looking at...

+

+ Make the editor tabs and the lines in navigation lists stand out + using the File Colors page of the project settings.

+

+

+ + diff --git a/python/edu/resources/tips/QuickDocInSuggestionList.html b/python/edu/resources/tips/QuickDocInSuggestionList.html new file mode 100755 index 000000000000..94d0e5a2e0d3 --- /dev/null +++ b/python/edu/resources/tips/QuickDocInSuggestionList.html @@ -0,0 +1,14 @@ + + + + + + + +

When choosing a live template from a suggestion list, press +&shortcut:QuickJavaDoc; to view quick documentation - +to be sure you make a right choice:

+

+ + + diff --git a/python/edu/resources/tips/QuickDocOnMouseMove.html b/python/edu/resources/tips/QuickDocOnMouseMove.html new file mode 100755 index 000000000000..9499aeaeaad5 --- /dev/null +++ b/python/edu/resources/tips/QuickDocOnMouseMove.html @@ -0,0 +1,15 @@ + + + + + + +

You don't need to invoke quick documentation explicitly +(&shortcut:QuickJavaDoc;) - if you just move your mouse +pointer over the desired symbol, the quick documentation pop-up window will show +automatically.

+

To enable this feature, select the check box Show quick doc on mouse move +in the editor settings. +

+ + diff --git a/python/edu/resources/tips/QuickFixRightArrow.html b/python/edu/resources/tips/QuickFixRightArrow.html new file mode 100644 index 000000000000..04a937377bc2 --- /dev/null +++ b/python/edu/resources/tips/QuickFixRightArrow.html @@ -0,0 +1,17 @@ + + + + + + + +

When you press &shortcut:ShowIntentionActions; to invoke a quick fix or intention action, + press the right arrow key to reveal the list of additional options.

+

Depending on the context, you can choose to disable inspection, fix all problems, + change inspection profile, etc.

+

qfo

+ + + + + diff --git a/python/edu/resources/tips/QuickJavaDoc.html b/python/edu/resources/tips/QuickJavaDoc.html new file mode 100644 index 000000000000..5bceb1a6ce70 --- /dev/null +++ b/python/edu/resources/tips/QuickJavaDoc.html @@ -0,0 +1,12 @@ + + + + + +

+ To quickly see the documentation for the symbol at caret, press &shortcut:QuickJavaDoc; + (View | Quick Documentation).

+

+

+ + diff --git a/python/edu/resources/tips/QuickJavaDocInLookups.html b/python/edu/resources/tips/QuickJavaDocInLookups.html new file mode 100644 index 000000000000..b2c232944bda --- /dev/null +++ b/python/edu/resources/tips/QuickJavaDocInLookups.html @@ -0,0 +1,18 @@ + + + + + + + +

The shortcuts such as &shortcut:QuickJavaDoc; + (View | Quick Documentation), + &shortcut:ParameterInfo; (View | Parameter Info), + &shortcut:GotoDeclaration; (Navigate | Declaration) + and others can be used not only in the editor but in the code completion popup list as well.

+

+ + + + + diff --git a/python/edu/resources/tips/QuickSwitchScheme.html b/python/edu/resources/tips/QuickSwitchScheme.html new file mode 100644 index 000000000000..0d9359921242 --- /dev/null +++ b/python/edu/resources/tips/QuickSwitchScheme.html @@ -0,0 +1,17 @@ + + + + + + + +

With a single keystroke, you can apply another code style/coloring scheme or keymap right from the editor. + Just press &shortcut:QuickChangeScheme; + (View | Quick Switch Scheme), + to specify the scheme you want to change.

+

+ + + + + \ No newline at end of file diff --git a/python/edu/resources/tips/RecentChanges.html b/python/edu/resources/tips/RecentChanges.html new file mode 100644 index 000000000000..83cae820f71a --- /dev/null +++ b/python/edu/resources/tips/RecentChanges.html @@ -0,0 +1,14 @@ + + + + + + + +

Use &shortcut:RecentChanges; to quickly review your recent changes to the project.

+

+ + + + + diff --git a/python/edu/resources/tips/RecentFiles.html b/python/edu/resources/tips/RecentFiles.html new file mode 100644 index 000000000000..975af5018893 --- /dev/null +++ b/python/edu/resources/tips/RecentFiles.html @@ -0,0 +1,22 @@ + + + + + + + +

&shortcut:RecentFiles; (View | Recent Files) + brings a popup list of the recently visited files. Choose the desired file and press + Enter to open it.

+

+ +

Besides recent files, you can bring up results of the usage searches you have performed + recently. To do that, use the same &shortcut:RecentFiles; shortcut with the Find tool window having + the focus, and select the desired find usages result from the Recent Find Usages popup.

+ +

+ + + + + diff --git a/python/edu/resources/tips/RecentSearch.html b/python/edu/resources/tips/RecentSearch.html new file mode 100644 index 000000000000..1c727e6a952f --- /dev/null +++ b/python/edu/resources/tips/RecentSearch.html @@ -0,0 +1,16 @@ + + + + + + + + +

When searching for a text string in a file, use recent history: with the search pane already open, click + the down arrow to show the list of recent entries. +

+ + + + + diff --git a/python/edu/resources/tips/RefactorThis.html b/python/edu/resources/tips/RefactorThis.html new file mode 100644 index 000000000000..275e43b74696 --- /dev/null +++ b/python/edu/resources/tips/RefactorThis.html @@ -0,0 +1,13 @@ + + + + + + +

If you place the caret at certain symbol and press &shortcut:Refactorings.QuickListPopupAction;, +you will see the list of refactorings applicable to the current context.

+

+

+ + + diff --git a/python/edu/resources/tips/RemoteInterpreter.html b/python/edu/resources/tips/RemoteInterpreter.html new file mode 100644 index 000000000000..9373493d41e1 --- /dev/null +++ b/python/edu/resources/tips/RemoteInterpreter.html @@ -0,0 +1,13 @@ + + + + + +

Found yourself in a situation, when you want to use an interpreter located remotely? With +PyCharm it is quite easy.

+

To configure a remote interpreter, press &shortcut:ShowSettings;, and +under the Project Settings. open the page Project Interpreter.

+

Then click the geat button, and choose the option Add Remote:

+

You can use this remote interpreter for your project, or just leave it as one of the available interpreters.

+ + diff --git a/python/edu/resources/tips/Rename.html b/python/edu/resources/tips/Rename.html new file mode 100644 index 000000000000..a1307443a10f --- /dev/null +++ b/python/edu/resources/tips/Rename.html @@ -0,0 +1,17 @@ + + + + + + + +

You can easily rename your local variables with automatic correction of all places where they are used.

+

To try it, place the caret at the variable you want to rename, and press &shortcut:RenameElement; + (Refactor | Rename). + Type the new name in the popup window that appears, or select one of the suggested names, + and press + Enter.

+

+ + + diff --git a/python/edu/resources/tips/RenameCssSelector.html b/python/edu/resources/tips/RenameCssSelector.html new file mode 100644 index 000000000000..12e4b7a9cfbb --- /dev/null +++ b/python/edu/resources/tips/RenameCssSelector.html @@ -0,0 +1,15 @@ + + + + + + + +

It is possible to rename CSS selectors directly from HTML. Position the caret at + the selector to be renamed and press &shortcut:RenameElement; + (Refactor | Rename).

+ + + + + diff --git a/python/edu/resources/tips/Reopen.html b/python/edu/resources/tips/Reopen.html new file mode 100644 index 000000000000..f66edac2e0ac --- /dev/null +++ b/python/edu/resources/tips/Reopen.html @@ -0,0 +1,20 @@ + + + + + + + +

To open again one of the recent projects, use Reopen(on Windows and Linux)/Open Recent(on MacOS) +on the File menu:

+

+ +

Another way to reopen a project is to right-click the &productName; icon on the task bar: + +

+ + +

+ + + diff --git a/python/edu/resources/tips/RunConfigFolders.html b/python/edu/resources/tips/RunConfigFolders.html new file mode 100644 index 000000000000..a4d8c08c3597 --- /dev/null +++ b/python/edu/resources/tips/RunConfigFolders.html @@ -0,0 +1,11 @@ + + + + + + +

If there are too many run/debug configurations of the same type, you can group them into folders, and thus distinguish them visually.

+

+ + + diff --git a/python/edu/resources/tips/ScopesInTODO.html b/python/edu/resources/tips/ScopesInTODO.html new file mode 100644 index 000000000000..9872b807a7a9 --- /dev/null +++ b/python/edu/resources/tips/ScopesInTODO.html @@ -0,0 +1,15 @@ + + + + + + +

If you are working on a large project, with numerous TODO items, +filter them by scopes.

+

Use the Scope-Based tab in the TODO tool window to show only those items +that pertain to the scope of interest.

+

+

+ + + diff --git a/python/edu/resources/tips/SearchEverywhere.html b/python/edu/resources/tips/SearchEverywhere.html new file mode 100644 index 000000000000..9488ee263bda --- /dev/null +++ b/python/edu/resources/tips/SearchEverywhere.html @@ -0,0 +1,15 @@ + + + + + + + +

Find any action, symbol, or setting in &productName; with +Double Shift:

+

. +

You can also click in the upper-right corner of the product window. +

+ + + diff --git a/python/edu/resources/tips/SearchInSettings.html b/python/edu/resources/tips/SearchInSettings.html new file mode 100644 index 000000000000..85f14b136114 --- /dev/null +++ b/python/edu/resources/tips/SearchInSettings.html @@ -0,0 +1,16 @@ + + + + + + + +

You can quickly find a setting you need in the Settings/Preferences dialog, without browsing through the numerous options. +Just type some characters that, in your opinion, exist in the option description, and the list of settings will reduce to the +matching ones. Select the desired entry, and see the setting that contains the entered characters highlighted:

+

+ + + + + diff --git a/python/edu/resources/tips/SelectIn.html b/python/edu/resources/tips/SelectIn.html new file mode 100644 index 000000000000..5076777f945b --- /dev/null +++ b/python/edu/resources/tips/SelectIn.html @@ -0,0 +1,16 @@ + + + + + + + +

To quickly select the currently edited element (class, file, method or field) in any view (Project view, + Structure view or other), + press &shortcut:SelectIn;.

+

+ + + + + diff --git a/python/edu/resources/tips/SelectRunDebugConfiguration.html b/python/edu/resources/tips/SelectRunDebugConfiguration.html new file mode 100644 index 000000000000..54ff5a42b2f3 --- /dev/null +++ b/python/edu/resources/tips/SelectRunDebugConfiguration.html @@ -0,0 +1,14 @@ + + + + + + + +

By pressing &shortcut:ChooseRunConfiguration; you can access the Run/Debug dropdown on the main toolbar, + without the need to use your mouse.

+ + + + + \ No newline at end of file diff --git a/python/edu/resources/tips/SelectTasks.html b/python/edu/resources/tips/SelectTasks.html new file mode 100644 index 000000000000..db5fb1a34864 --- /dev/null +++ b/python/edu/resources/tips/SelectTasks.html @@ -0,0 +1,15 @@ + + + + + + +

When working with a lengthy list of tasks, you don't need to delete them one by one. + Select several tasks, using Shift + or Control/Command keys, click the right arrow, and then click +Remove. +

+

+ + + diff --git a/python/edu/resources/tips/ShowAppliedStyles.html b/python/edu/resources/tips/ShowAppliedStyles.html new file mode 100644 index 000000000000..2f6b0984b220 --- /dev/null +++ b/python/edu/resources/tips/ShowAppliedStyles.html @@ -0,0 +1,17 @@ + + + + + + + +

You can quickly review all styles currently applied to an HTML tag, by right-clicking the tag name and selecting + Show Applied Styles For Tag + from the context menu:

+

+ + + + + + diff --git a/python/edu/resources/tips/ShowHideSideBars.html b/python/edu/resources/tips/ShowHideSideBars.html new file mode 100644 index 000000000000..d39e28fa2e7b --- /dev/null +++ b/python/edu/resources/tips/ShowHideSideBars.html @@ -0,0 +1,14 @@ + + + + + +

+ If you need more workspace, you can hide the tool windows bars: + click in the lower left corner.

+

+ If necessary, you can show the tool window buttons just for a moment. To do that, press the key Alt (for Windows/*nix) or +Cmd (for Mac) twice and keep it down. + While the key is pressed, the tool window buttons are visible.

+ + diff --git a/python/edu/resources/tips/ShowUsages.html b/python/edu/resources/tips/ShowUsages.html new file mode 100644 index 000000000000..83e009ffab12 --- /dev/null +++ b/python/edu/resources/tips/ShowUsages.html @@ -0,0 +1,17 @@ + + + + + + + +

You can bring forward the list of all usages of a class, method or variable across the whole + project, and quickly jump to the selected usage. To do that, place the caret at the symbol's name or at its usage + in code and press &shortcut:ShowUsages; (Edit | Find | Show Usages + in the main menu), scroll the list and click the desired usage.

+

+ + + + + diff --git a/python/edu/resources/tips/SpeedSearch.html b/python/edu/resources/tips/SpeedSearch.html new file mode 100644 index 000000000000..879615356dab --- /dev/null +++ b/python/edu/resources/tips/SpeedSearch.html @@ -0,0 +1,14 @@ + + + + + + + +

The speed search is available in all the tree views: just start typing and you'll quickly locate the necessary item.

+

+ + + + + diff --git a/python/edu/resources/tips/SpeedSearchinLiveTemplates.html b/python/edu/resources/tips/SpeedSearchinLiveTemplates.html new file mode 100644 index 000000000000..c5b3f9ca3a54 --- /dev/null +++ b/python/edu/resources/tips/SpeedSearchinLiveTemplates.html @@ -0,0 +1,12 @@ + + + + + + +

In the Live Templates settings, use speed search to find templates with certain text in the template abbreviation, body or description.

+

Start typing the desired text, and the list of available templates will shrink to show matching templates only:

+

+ + + diff --git a/python/edu/resources/tips/Spellchecker.html b/python/edu/resources/tips/Spellchecker.html new file mode 100644 index 000000000000..7361ddf2aaaf --- /dev/null +++ b/python/edu/resources/tips/Spellchecker.html @@ -0,0 +1,15 @@ + + + + + + +

Keep your source code typo-free with the help of the built-in Spellchecker.

+ +

All texts, including comments, textual strings and literals, are inspected against the pre-defined dictionaries. +All typos are highlighted, which leaves you with the task of choosing the correct word, accepting the current spelling, or disabling inspection.

+

Use &shortcut:ShowIntentionActions; to see the list of available actions.

+ + + + diff --git a/python/edu/resources/tips/SpellcheckerDictionaries.html b/python/edu/resources/tips/SpellcheckerDictionaries.html new file mode 100644 index 000000000000..c81027a013f0 --- /dev/null +++ b/python/edu/resources/tips/SpellcheckerDictionaries.html @@ -0,0 +1,12 @@ + + + + + + +

If you lack words in the pre-defined dictionaries, you can create your own ones. A custom dictionary is a mere +textual file with a .dic extension, with each word starting on a new line.

+

All you have to do is to point to the directories where your dictionaries are stored, in the +Spelling of the Settings dialog.

+ + diff --git a/python/edu/resources/tips/Surround.html b/python/edu/resources/tips/Surround.html new file mode 100644 index 000000000000..a7b2478b56ef --- /dev/null +++ b/python/edu/resources/tips/Surround.html @@ -0,0 +1,14 @@ + + + + + +

+ When you want to catch exceptions thrown by some code fragment, + select it in the editor, press &shortcut:SurroundWith; + (Code | Surround With) and choose try/except. + This will automatically generate the except clause.

+

+ surround

+ + diff --git a/python/edu/resources/tips/Switcher.html b/python/edu/resources/tips/Switcher.html new file mode 100644 index 000000000000..270bd9b86574 --- /dev/null +++ b/python/edu/resources/tips/Switcher.html @@ -0,0 +1,15 @@ + + + + + + + +

Use the Switcher (&shortcut:Switcher;) to switch between open files and tool windows. + Keeping Ctrl pressed, use the Up and Down arrow keys, + Tab or Shift+Tab, Alt for navigation; + use Delete or BackSpace to close editor tab or hide a tool window.

+

+ + + \ No newline at end of file diff --git a/python/edu/resources/tips/TabInEditorClose.html b/python/edu/resources/tips/TabInEditorClose.html new file mode 100644 index 000000000000..dd3f371c0228 --- /dev/null +++ b/python/edu/resources/tips/TabInEditorClose.html @@ -0,0 +1,15 @@ + + + + + + + +

Did you know that you can close tabs in the editor and the tool windows of &productName; without actually + using the context menu commands? + It is enough to point with your mouse cursor to a tab to be closed, and click the middle mouse button, or just + use the Shift+click combination.

+ + + + diff --git a/python/edu/resources/tips/TabInLookups.html b/python/edu/resources/tips/TabInLookups.html new file mode 100644 index 000000000000..328047399be6 --- /dev/null +++ b/python/edu/resources/tips/TabInLookups.html @@ -0,0 +1,17 @@ + + + + + + + +

When using Code Completion, you can accept the currently highlighted selection in the popup list + with &shortcut:EditorChooseLookupItemReplace; key.

+

Unlike accepting with the &shortcut:EditorChooseLookupItem; key, the selected name will overwrite + the rest of the name to the right of the caret. This can be especially useful for replacing one method + or variable name with another.

+ + + + + diff --git a/python/edu/resources/tips/TagNameCompletion.html b/python/edu/resources/tips/TagNameCompletion.html new file mode 100644 index 000000000000..cdce27443c63 --- /dev/null +++ b/python/edu/resources/tips/TagNameCompletion.html @@ -0,0 +1,17 @@ + + + + + +

+ A special variant of the Code Completion feature invoked by pressing &shortcut:CodeCompletion; twice allows you to + complete + XML tag names from namespaces not declared in the current file. + If the namespace is not declared yet the declaration is generated automatically. +

+ +

+ + + + \ No newline at end of file diff --git a/python/edu/resources/tips/Templates.html b/python/edu/resources/tips/Templates.html new file mode 100644 index 000000000000..91bd658bff3f --- /dev/null +++ b/python/edu/resources/tips/Templates.html @@ -0,0 +1,14 @@ + + + + + +

+ It's very easy to navigate between the Django templates and referencing views.

+

+ To do that, use the icons and + in the left gutter of the editor.

+

+

+ + diff --git a/python/edu/resources/tips/Terminal.html b/python/edu/resources/tips/Terminal.html new file mode 100644 index 000000000000..fcebc658521a --- /dev/null +++ b/python/edu/resources/tips/Terminal.html @@ -0,0 +1,14 @@ + + + + + + + +

You don't need to leave &productName; to work with your favorite shell. Just choose +Tools | Open Terminal on the main menu, +and enjoy using the embedded local terminal.

+

+ + + diff --git a/python/edu/resources/tips/TerminalOpen.html b/python/edu/resources/tips/TerminalOpen.html new file mode 100755 index 000000000000..bb96ceebb64b --- /dev/null +++ b/python/edu/resources/tips/TerminalOpen.html @@ -0,0 +1,14 @@ + + + + + + + +

&productName; makes it possible to +launch the embedded local terminal using keyboard only. Press +&shortcut:ActivateTerminalToolWindow;, +and see the terminal running. +

+ + diff --git a/python/edu/resources/tips/ToolWindowsQuickAccess.html b/python/edu/resources/tips/ToolWindowsQuickAccess.html new file mode 100644 index 000000000000..bf499d360dd1 --- /dev/null +++ b/python/edu/resources/tips/ToolWindowsQuickAccess.html @@ -0,0 +1,14 @@ + + + + + + + +

You can gain quick access to the available tool windows: hover your mouse +pointer over icon in the lower left corner of the IDE window.

+

The list of tool windows shows up, leaving you with the task of selecting the desired one:

+

+ + + diff --git a/python/edu/resources/tips/VcsQuickList.html b/python/edu/resources/tips/VcsQuickList.html new file mode 100644 index 000000000000..e7455bab492e --- /dev/null +++ b/python/edu/resources/tips/VcsQuickList.html @@ -0,0 +1,16 @@ + + + + + + +

All your most indispensable VCS commands are just one-click away...

+

+Choose VCS | VCS Operations Popup +on the main menu, and get a popup with the VCS commands that are relevant to the current context: +

+ +

+ + + diff --git a/python/edu/resources/tips/Welcome.html b/python/edu/resources/tips/Welcome.html new file mode 100644 index 000000000000..1be740b96e03 --- /dev/null +++ b/python/edu/resources/tips/Welcome.html @@ -0,0 +1,15 @@ + + + + + +

Welcome to PyCharm &majorVersion;.&minorVersion;

+

+ You can quickly get familiar with the main features of the IDE by reading these tips.

+

+ You can try out the features described in the tips while this dialog stays open on the screen.

+

+ If you close the dialog, you can always get back to it using + Help | Tip of the Day on the menu bar.

+ + diff --git a/python/edu/resources/tips/WideScreen.html b/python/edu/resources/tips/WideScreen.html new file mode 100644 index 000000000000..1ef170b896a4 --- /dev/null +++ b/python/edu/resources/tips/WideScreen.html @@ -0,0 +1,16 @@ + + + + + + + +

Tune the &productName; tool windows layout to make better use of your screen.

+

Toggle between the vertical and side-by-side placement of the tool windows by +Ctrl+click (Windows/*nix) or Cmd+click (Mac) on the splitter:

+ + +

+ + + diff --git a/python/edu/resources/tips/WildcardsInNavigationPopups.html b/python/edu/resources/tips/WildcardsInNavigationPopups.html new file mode 100644 index 000000000000..87958ee8ee10 --- /dev/null +++ b/python/edu/resources/tips/WildcardsInNavigationPopups.html @@ -0,0 +1,20 @@ + + + + + + + +

For the pattern search in the Go to Class, + Go to Symbol and + Go to File pop-up frames, + use * and space symbols.

+

* stands for any symbol.

+

Space at the end means the end of a pattern, and the preceding string will be considered not just a prefix but a whole pattern. + The list of the suggested names will be reduced accordingly.

+

+ + + + + diff --git a/python/edu/resources/tips/WordCompletion.html b/python/edu/resources/tips/WordCompletion.html new file mode 100644 index 000000000000..fd51de5e95a6 --- /dev/null +++ b/python/edu/resources/tips/WordCompletion.html @@ -0,0 +1,16 @@ + + + + + + + +

Use Basic Completion + (&shortcut:CodeCompletion;) for completing words in text and comments in files of many different types.

+

All the words from the current file that start with the typed prefix will appear in the lookup list.

+

+ + + + + diff --git a/python/edu/resources/tips/css/tips.css b/python/edu/resources/tips/css/tips.css new file mode 100644 index 000000000000..1dea96fc5169 --- /dev/null +++ b/python/edu/resources/tips/css/tips.css @@ -0,0 +1,60 @@ +body { + /*background: #ffffff;*/ + margin-left: 10px; + margin-right: 2px; + margin-bottom: 6px; +} +h1, p, ul { + font-family: 'MS Reference Sans Serif', verdana, arial, sans-serif; +} +.code, .code_emphasis, .code_keyword, pre, .shortcut { + font-family: 'Lucida Console', monospace; +} +h1, p, pre, ul { + font-size: 10px; + /*color: #3f3f3f;*/ +} +p, ul { + margin-top: 6px; +} +h1, p, ul { + margin-bottom: 0; +} +ul { + margin-left: 0; + padding-left: 14px; +} +h1, .image, pre { + margin-top: 10px; +} +.image, pre { + margin-bottom: 2px; +} +pre { + margin-right: 6px; + border-style: solid; + border-width: 1px; + border-color: #d0d0d0; + background-color: #fbfbfb; + padding-left: 10px; + padding-top: 6px; + padding-bottom: 6px; +} +.control, h1 { + font-weight: bold; +} +.control { + color: #808080; +} +.caret, .code_emphasis, .code_keyword, .emphasis, .shortcut { + color: #990000; +} +pre .keyword{ + color: #000080; +} +h1 .product { + color: #264db5; +} +h1 .version { + color: #f58220; +} \ No newline at end of file diff --git a/python/edu/resources/tips/css/tips_darcula.css b/python/edu/resources/tips/css/tips_darcula.css new file mode 100644 index 000000000000..5524189d342f --- /dev/null +++ b/python/edu/resources/tips/css/tips_darcula.css @@ -0,0 +1,75 @@ +/* + * Copyright 2000-2013 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +body { + margin-left: 10px; + margin-right: 2px; + margin-bottom: 6px; +} +h1, p, ul { + font-family: 'MS Reference Sans Serif', verdana, arial, sans-serif; +} +.code, .code_emphasis, .code_keyword, pre, .shortcut { + font-family: 'Lucida Console', monospace; +} +h1, p, pre, ul { + font-size: 10px; + /*color: #3f3f3f;*/ +} +p, ul { + margin-top: 6px; +} +h1, p, ul { + margin-bottom: 0; +} +ul { + margin-left: 0; + padding-left: 14px; +} +h1, .image, pre { + margin-top: 10px; +} +.image, pre { + margin-bottom: 2px; +} +pre { + margin-right: 6px; + border-style: solid; + border-width: 1px; + border-color: #d0d0d0; + background-color: #fbfbfb; + padding-left: 10px; + padding-top: 6px; + padding-bottom: 6px; +} +.control, h1 { + font-weight: bold; +} +.control { + color: #d19a67; +} +.caret, .code_emphasis, .code_keyword, .emphasis, .shortcut { + color: #cb7d4a; + font-weight: bold; +} +pre .keyword{ + color: #cb7832; +} +h1 .product { + color: #5275d0; +} +h1 .version { + color: #f58220; +} \ No newline at end of file diff --git a/python/edu/resources/tips/images/CodeCompletionInSearch.png b/python/edu/resources/tips/images/CodeCompletionInSearch.png new file mode 100644 index 000000000000..f4aa5e71bc48 Binary files /dev/null and b/python/edu/resources/tips/images/CodeCompletionInSearch.png differ diff --git a/python/edu/resources/tips/images/CodeCompletionInSearch@2x.png b/python/edu/resources/tips/images/CodeCompletionInSearch@2x.png new file mode 100644 index 000000000000..ffdc6ecd1228 Binary files /dev/null and b/python/edu/resources/tips/images/CodeCompletionInSearch@2x.png differ diff --git a/python/edu/resources/tips/images/CodeCompletionInSearch@2x_dark.png b/python/edu/resources/tips/images/CodeCompletionInSearch@2x_dark.png new file mode 100644 index 000000000000..13a36f0b9cb0 Binary files /dev/null and b/python/edu/resources/tips/images/CodeCompletionInSearch@2x_dark.png differ diff --git a/python/edu/resources/tips/images/CodeCompletionInSearch_dark.png b/python/edu/resources/tips/images/CodeCompletionInSearch_dark.png new file mode 100644 index 000000000000..69c9b5d8bca3 Binary files /dev/null and b/python/edu/resources/tips/images/CodeCompletionInSearch_dark.png differ diff --git a/python/edu/resources/tips/images/RunConfigFolder.png b/python/edu/resources/tips/images/RunConfigFolder.png new file mode 100644 index 000000000000..b9badc177a1f Binary files /dev/null and b/python/edu/resources/tips/images/RunConfigFolder.png differ diff --git a/python/edu/resources/tips/images/RunConfigFolder@2x.png b/python/edu/resources/tips/images/RunConfigFolder@2x.png new file mode 100644 index 000000000000..ae8a0ebe8992 Binary files /dev/null and b/python/edu/resources/tips/images/RunConfigFolder@2x.png differ diff --git a/python/edu/resources/tips/images/RunConfigFolder@2x_dark.png b/python/edu/resources/tips/images/RunConfigFolder@2x_dark.png new file mode 100644 index 000000000000..34bdb8694790 Binary files /dev/null and b/python/edu/resources/tips/images/RunConfigFolder@2x_dark.png differ diff --git a/python/edu/resources/tips/images/RunConfigFolder_dark.png b/python/edu/resources/tips/images/RunConfigFolder_dark.png new file mode 100644 index 000000000000..c1c4e99ed1a4 Binary files /dev/null and b/python/edu/resources/tips/images/RunConfigFolder_dark.png differ diff --git a/python/edu/resources/tips/images/SpeedSearchInLiveTemplates.png b/python/edu/resources/tips/images/SpeedSearchInLiveTemplates.png new file mode 100644 index 000000000000..586a47de63de Binary files /dev/null and b/python/edu/resources/tips/images/SpeedSearchInLiveTemplates.png differ diff --git a/python/edu/resources/tips/images/SpeedSearchInLiveTemplates@2x.png b/python/edu/resources/tips/images/SpeedSearchInLiveTemplates@2x.png new file mode 100644 index 000000000000..ae951e8bf066 Binary files /dev/null and b/python/edu/resources/tips/images/SpeedSearchInLiveTemplates@2x.png differ diff --git a/python/edu/resources/tips/images/SpeedSearchInLiveTemplates@2x_dark.png b/python/edu/resources/tips/images/SpeedSearchInLiveTemplates@2x_dark.png new file mode 100644 index 000000000000..562e5c0fb3bf Binary files /dev/null and b/python/edu/resources/tips/images/SpeedSearchInLiveTemplates@2x_dark.png differ diff --git a/python/edu/resources/tips/images/SpeedSearchInLiveTemplates_dark.png b/python/edu/resources/tips/images/SpeedSearchInLiveTemplates_dark.png new file mode 100644 index 000000000000..5def14aa5f36 Binary files /dev/null and b/python/edu/resources/tips/images/SpeedSearchInLiveTemplates_dark.png differ diff --git a/python/edu/resources/tips/images/add_remote_interpreter.png b/python/edu/resources/tips/images/add_remote_interpreter.png new file mode 100644 index 000000000000..d9370e4468fb Binary files /dev/null and b/python/edu/resources/tips/images/add_remote_interpreter.png differ diff --git a/python/edu/resources/tips/images/add_remote_interpreter@2x.png b/python/edu/resources/tips/images/add_remote_interpreter@2x.png new file mode 100644 index 000000000000..01712503c0ac Binary files /dev/null and b/python/edu/resources/tips/images/add_remote_interpreter@2x.png differ diff --git a/python/edu/resources/tips/images/add_remote_interpreter@2x_dark.png b/python/edu/resources/tips/images/add_remote_interpreter@2x_dark.png new file mode 100644 index 000000000000..f5758134e8cb Binary files /dev/null and b/python/edu/resources/tips/images/add_remote_interpreter@2x_dark.png differ diff --git a/python/edu/resources/tips/images/add_remote_interpreter_dark.png b/python/edu/resources/tips/images/add_remote_interpreter_dark.png new file mode 100644 index 000000000000..81177f5dd4d6 Binary files /dev/null and b/python/edu/resources/tips/images/add_remote_interpreter_dark.png differ diff --git a/python/edu/resources/tips/images/annotationShowDiff.png b/python/edu/resources/tips/images/annotationShowDiff.png new file mode 100644 index 000000000000..f31b70798265 Binary files /dev/null and b/python/edu/resources/tips/images/annotationShowDiff.png differ diff --git a/python/edu/resources/tips/images/annotationShowDiff@2x.png b/python/edu/resources/tips/images/annotationShowDiff@2x.png new file mode 100644 index 000000000000..22cd9dc11b73 Binary files /dev/null and b/python/edu/resources/tips/images/annotationShowDiff@2x.png differ diff --git a/python/edu/resources/tips/images/annotationShowDiff@2x_dark.png b/python/edu/resources/tips/images/annotationShowDiff@2x_dark.png new file mode 100644 index 000000000000..ebe7bd7d8702 Binary files /dev/null and b/python/edu/resources/tips/images/annotationShowDiff@2x_dark.png differ diff --git a/python/edu/resources/tips/images/annotationShowDiff_dark.png b/python/edu/resources/tips/images/annotationShowDiff_dark.png new file mode 100644 index 000000000000..f91539d14c9f Binary files /dev/null and b/python/edu/resources/tips/images/annotationShowDiff_dark.png differ diff --git a/python/edu/resources/tips/images/breakpoint_speedmenu.png b/python/edu/resources/tips/images/breakpoint_speedmenu.png new file mode 100644 index 000000000000..51c8cdedf4ef Binary files /dev/null and b/python/edu/resources/tips/images/breakpoint_speedmenu.png differ diff --git a/python/edu/resources/tips/images/breakpoint_speedmenu@2x.png b/python/edu/resources/tips/images/breakpoint_speedmenu@2x.png new file mode 100644 index 000000000000..cb0eb1b1bec2 Binary files /dev/null and b/python/edu/resources/tips/images/breakpoint_speedmenu@2x.png differ diff --git a/python/edu/resources/tips/images/breakpoint_speedmenu@2x_dark.png b/python/edu/resources/tips/images/breakpoint_speedmenu@2x_dark.png new file mode 100644 index 000000000000..c384649ddc14 Binary files /dev/null and b/python/edu/resources/tips/images/breakpoint_speedmenu@2x_dark.png differ diff --git a/python/edu/resources/tips/images/breakpoint_speedmenu@_dark.png b/python/edu/resources/tips/images/breakpoint_speedmenu@_dark.png new file mode 100644 index 000000000000..f51e9a5c1ecf Binary files /dev/null and b/python/edu/resources/tips/images/breakpoint_speedmenu@_dark.png differ diff --git a/python/edu/resources/tips/images/browse_remote_hosts.png b/python/edu/resources/tips/images/browse_remote_hosts.png new file mode 100644 index 000000000000..fc79b19fe0e3 Binary files /dev/null and b/python/edu/resources/tips/images/browse_remote_hosts.png differ diff --git a/python/edu/resources/tips/images/builtInServer.png b/python/edu/resources/tips/images/builtInServer.png new file mode 100644 index 000000000000..068f8228cad4 Binary files /dev/null and b/python/edu/resources/tips/images/builtInServer.png differ diff --git a/python/edu/resources/tips/images/builtInServer@2x.png b/python/edu/resources/tips/images/builtInServer@2x.png new file mode 100644 index 000000000000..09b46ff0b969 Binary files /dev/null and b/python/edu/resources/tips/images/builtInServer@2x.png differ diff --git a/python/edu/resources/tips/images/builtInServer@2x_dark.png b/python/edu/resources/tips/images/builtInServer@2x_dark.png new file mode 100644 index 000000000000..215fd3e55f1d Binary files /dev/null and b/python/edu/resources/tips/images/builtInServer@2x_dark.png differ diff --git a/python/edu/resources/tips/images/builtInServer@_dark.png b/python/edu/resources/tips/images/builtInServer@_dark.png new file mode 100644 index 000000000000..4e3d5a403df4 Binary files /dev/null and b/python/edu/resources/tips/images/builtInServer@_dark.png differ diff --git a/python/edu/resources/tips/images/bullet.png b/python/edu/resources/tips/images/bullet.png new file mode 100644 index 000000000000..bc9f6a70cbde Binary files /dev/null and b/python/edu/resources/tips/images/bullet.png differ diff --git a/python/edu/resources/tips/images/camel_completion.png b/python/edu/resources/tips/images/camel_completion.png new file mode 100644 index 000000000000..45c166b31404 Binary files /dev/null and b/python/edu/resources/tips/images/camel_completion.png differ diff --git a/python/edu/resources/tips/images/camel_completion@2x.png b/python/edu/resources/tips/images/camel_completion@2x.png new file mode 100644 index 000000000000..55fb7a737d37 Binary files /dev/null and b/python/edu/resources/tips/images/camel_completion@2x.png differ diff --git a/python/edu/resources/tips/images/camel_completion@2x_dark.png b/python/edu/resources/tips/images/camel_completion@2x_dark.png new file mode 100644 index 000000000000..1c9f53aa8521 Binary files /dev/null and b/python/edu/resources/tips/images/camel_completion@2x_dark.png differ diff --git a/python/edu/resources/tips/images/camel_completion_dark.png b/python/edu/resources/tips/images/camel_completion_dark.png new file mode 100644 index 000000000000..d4ea6e880fbb Binary files /dev/null and b/python/edu/resources/tips/images/camel_completion_dark.png differ diff --git a/python/edu/resources/tips/images/camel_goto.png b/python/edu/resources/tips/images/camel_goto.png new file mode 100644 index 000000000000..28405e5da141 Binary files /dev/null and b/python/edu/resources/tips/images/camel_goto.png differ diff --git a/python/edu/resources/tips/images/camel_goto@2x.png b/python/edu/resources/tips/images/camel_goto@2x.png new file mode 100644 index 000000000000..31f2be46dbd6 Binary files /dev/null and b/python/edu/resources/tips/images/camel_goto@2x.png differ diff --git a/python/edu/resources/tips/images/camel_goto@2x_dark.png b/python/edu/resources/tips/images/camel_goto@2x_dark.png new file mode 100644 index 000000000000..3ed950fa449b Binary files /dev/null and b/python/edu/resources/tips/images/camel_goto@2x_dark.png differ diff --git a/python/edu/resources/tips/images/camel_goto_dark.png b/python/edu/resources/tips/images/camel_goto_dark.png new file mode 100644 index 000000000000..0871187f8043 Binary files /dev/null and b/python/edu/resources/tips/images/camel_goto_dark.png differ diff --git a/python/edu/resources/tips/images/changeLookupSorting.png b/python/edu/resources/tips/images/changeLookupSorting.png new file mode 100644 index 000000000000..63155a3eebc7 Binary files /dev/null and b/python/edu/resources/tips/images/changeLookupSorting.png differ diff --git a/python/edu/resources/tips/images/changeLookupSorting@2x.png b/python/edu/resources/tips/images/changeLookupSorting@2x.png new file mode 100644 index 000000000000..5fd6b02d25f0 Binary files /dev/null and b/python/edu/resources/tips/images/changeLookupSorting@2x.png differ diff --git a/python/edu/resources/tips/images/changeLookupSorting@2x_dark.png b/python/edu/resources/tips/images/changeLookupSorting@2x_dark.png new file mode 100644 index 000000000000..e87e55ee1579 Binary files /dev/null and b/python/edu/resources/tips/images/changeLookupSorting@2x_dark.png differ diff --git a/python/edu/resources/tips/images/changeLookupSorting_dark.png b/python/edu/resources/tips/images/changeLookupSorting_dark.png new file mode 100644 index 000000000000..4e7f0df5a4c8 Binary files /dev/null and b/python/edu/resources/tips/images/changeLookupSorting_dark.png differ diff --git a/python/edu/resources/tips/images/checkRegExp.png b/python/edu/resources/tips/images/checkRegExp.png new file mode 100644 index 000000000000..8d74fbe8716b Binary files /dev/null and b/python/edu/resources/tips/images/checkRegExp.png differ diff --git a/python/edu/resources/tips/images/checkRegExp@2x.png b/python/edu/resources/tips/images/checkRegExp@2x.png new file mode 100644 index 000000000000..2a20810d1f9f Binary files /dev/null and b/python/edu/resources/tips/images/checkRegExp@2x.png differ diff --git a/python/edu/resources/tips/images/checkRegExp@2x_dark.png b/python/edu/resources/tips/images/checkRegExp@2x_dark.png new file mode 100644 index 000000000000..26dcf18e1628 Binary files /dev/null and b/python/edu/resources/tips/images/checkRegExp@2x_dark.png differ diff --git a/python/edu/resources/tips/images/checkRegExp_dark.png b/python/edu/resources/tips/images/checkRegExp_dark.png new file mode 100644 index 000000000000..909fc3d43a75 Binary files /dev/null and b/python/edu/resources/tips/images/checkRegExp_dark.png differ diff --git a/python/edu/resources/tips/images/class_name_completion.png b/python/edu/resources/tips/images/class_name_completion.png new file mode 100644 index 000000000000..5c517e0de148 Binary files /dev/null and b/python/edu/resources/tips/images/class_name_completion.png differ diff --git a/python/edu/resources/tips/images/class_name_completion@2x.png b/python/edu/resources/tips/images/class_name_completion@2x.png new file mode 100644 index 000000000000..394a97748df3 Binary files /dev/null and b/python/edu/resources/tips/images/class_name_completion@2x.png differ diff --git a/python/edu/resources/tips/images/class_name_completion@2x_dark.png b/python/edu/resources/tips/images/class_name_completion@2x_dark.png new file mode 100644 index 000000000000..e6bbe34db2b0 Binary files /dev/null and b/python/edu/resources/tips/images/class_name_completion@2x_dark.png differ diff --git a/python/edu/resources/tips/images/class_name_completion_dark.png b/python/edu/resources/tips/images/class_name_completion_dark.png new file mode 100644 index 000000000000..6f8793338c64 Binary files /dev/null and b/python/edu/resources/tips/images/class_name_completion_dark.png differ diff --git a/python/edu/resources/tips/images/close1.png b/python/edu/resources/tips/images/close1.png new file mode 100644 index 000000000000..c09b94d4e608 Binary files /dev/null and b/python/edu/resources/tips/images/close1.png differ diff --git a/python/edu/resources/tips/images/close_others.png b/python/edu/resources/tips/images/close_others.png new file mode 100644 index 000000000000..9c860503f631 Binary files /dev/null and b/python/edu/resources/tips/images/close_others.png differ diff --git a/python/edu/resources/tips/images/close_others@2x.png b/python/edu/resources/tips/images/close_others@2x.png new file mode 100644 index 000000000000..2b1654bdb890 Binary files /dev/null and b/python/edu/resources/tips/images/close_others@2x.png differ diff --git a/python/edu/resources/tips/images/close_others@2x_dark.png b/python/edu/resources/tips/images/close_others@2x_dark.png new file mode 100644 index 000000000000..f4a8ecebbb59 Binary files /dev/null and b/python/edu/resources/tips/images/close_others@2x_dark.png differ diff --git a/python/edu/resources/tips/images/close_others_dark.png b/python/edu/resources/tips/images/close_others_dark.png new file mode 100644 index 000000000000..903575f4c5de Binary files /dev/null and b/python/edu/resources/tips/images/close_others_dark.png differ diff --git a/python/edu/resources/tips/images/code_completion.png b/python/edu/resources/tips/images/code_completion.png new file mode 100644 index 000000000000..cd51006c5dad Binary files /dev/null and b/python/edu/resources/tips/images/code_completion.png differ diff --git a/python/edu/resources/tips/images/code_completion@2x.png b/python/edu/resources/tips/images/code_completion@2x.png new file mode 100644 index 000000000000..933f30e2939b Binary files /dev/null and b/python/edu/resources/tips/images/code_completion@2x.png differ diff --git a/python/edu/resources/tips/images/code_completion@2x_dark.png b/python/edu/resources/tips/images/code_completion@2x_dark.png new file mode 100644 index 000000000000..c1c078ec50cb Binary files /dev/null and b/python/edu/resources/tips/images/code_completion@2x_dark.png differ diff --git a/python/edu/resources/tips/images/code_completion_dark.png b/python/edu/resources/tips/images/code_completion_dark.png new file mode 100644 index 000000000000..e932b9a4d9b8 Binary files /dev/null and b/python/edu/resources/tips/images/code_completion_dark.png differ diff --git a/python/edu/resources/tips/images/code_completion_middle.png b/python/edu/resources/tips/images/code_completion_middle.png new file mode 100644 index 000000000000..7dd4008426c1 Binary files /dev/null and b/python/edu/resources/tips/images/code_completion_middle.png differ diff --git a/python/edu/resources/tips/images/code_completion_middle@2x.png b/python/edu/resources/tips/images/code_completion_middle@2x.png new file mode 100644 index 000000000000..4df16b9eb020 Binary files /dev/null and b/python/edu/resources/tips/images/code_completion_middle@2x.png differ diff --git a/python/edu/resources/tips/images/code_completion_middle@2x_dark.png b/python/edu/resources/tips/images/code_completion_middle@2x_dark.png new file mode 100644 index 000000000000..2a72b63ef76e Binary files /dev/null and b/python/edu/resources/tips/images/code_completion_middle@2x_dark.png differ diff --git a/python/edu/resources/tips/images/code_completion_middle_dark.png b/python/edu/resources/tips/images/code_completion_middle_dark.png new file mode 100644 index 000000000000..392db57c3ff2 Binary files /dev/null and b/python/edu/resources/tips/images/code_completion_middle_dark.png differ diff --git a/python/edu/resources/tips/images/code_completion_no_shift.png b/python/edu/resources/tips/images/code_completion_no_shift.png new file mode 100644 index 000000000000..0907cb0d9096 Binary files /dev/null and b/python/edu/resources/tips/images/code_completion_no_shift.png differ diff --git a/python/edu/resources/tips/images/code_completion_no_shift@2x.png b/python/edu/resources/tips/images/code_completion_no_shift@2x.png new file mode 100644 index 000000000000..7680b7c895d8 Binary files /dev/null and b/python/edu/resources/tips/images/code_completion_no_shift@2x.png differ diff --git a/python/edu/resources/tips/images/code_completion_no_shift@2x_dark.png b/python/edu/resources/tips/images/code_completion_no_shift@2x_dark.png new file mode 100644 index 000000000000..e1d5fa996600 Binary files /dev/null and b/python/edu/resources/tips/images/code_completion_no_shift@2x_dark.png differ diff --git a/python/edu/resources/tips/images/code_completion_no_shift_dark.png b/python/edu/resources/tips/images/code_completion_no_shift_dark.png new file mode 100644 index 000000000000..3394c0e1b272 Binary files /dev/null and b/python/edu/resources/tips/images/code_completion_no_shift_dark.png differ diff --git a/python/edu/resources/tips/images/coloredFiles.png b/python/edu/resources/tips/images/coloredFiles.png new file mode 100644 index 000000000000..b68571305ded Binary files /dev/null and b/python/edu/resources/tips/images/coloredFiles.png differ diff --git a/python/edu/resources/tips/images/coloredFiles@2x.png b/python/edu/resources/tips/images/coloredFiles@2x.png new file mode 100644 index 000000000000..f26012847bdf Binary files /dev/null and b/python/edu/resources/tips/images/coloredFiles@2x.png differ diff --git a/python/edu/resources/tips/images/coloredFiles@2x_dark.png b/python/edu/resources/tips/images/coloredFiles@2x_dark.png new file mode 100644 index 000000000000..3691b6d759e7 Binary files /dev/null and b/python/edu/resources/tips/images/coloredFiles@2x_dark.png differ diff --git a/python/edu/resources/tips/images/coloredFiles_dark.png b/python/edu/resources/tips/images/coloredFiles_dark.png new file mode 100644 index 000000000000..45b3d008288f Binary files /dev/null and b/python/edu/resources/tips/images/coloredFiles_dark.png differ diff --git a/python/edu/resources/tips/images/columnSelection.png b/python/edu/resources/tips/images/columnSelection.png new file mode 100644 index 000000000000..2e3b62c77199 Binary files /dev/null and b/python/edu/resources/tips/images/columnSelection.png differ diff --git a/python/edu/resources/tips/images/columnSelection@2x.png b/python/edu/resources/tips/images/columnSelection@2x.png new file mode 100644 index 000000000000..56fbe0c8bab6 Binary files /dev/null and b/python/edu/resources/tips/images/columnSelection@2x.png differ diff --git a/python/edu/resources/tips/images/columnSelection@2x_dark.png b/python/edu/resources/tips/images/columnSelection@2x_dark.png new file mode 100644 index 000000000000..0e8c967186ef Binary files /dev/null and b/python/edu/resources/tips/images/columnSelection@2x_dark.png differ diff --git a/python/edu/resources/tips/images/columnSelection_dark.png b/python/edu/resources/tips/images/columnSelection_dark.png new file mode 100644 index 000000000000..a676d7e74311 Binary files /dev/null and b/python/edu/resources/tips/images/columnSelection_dark.png differ diff --git a/python/edu/resources/tips/images/completion_in_html.png b/python/edu/resources/tips/images/completion_in_html.png new file mode 100644 index 000000000000..9c20bb436faf Binary files /dev/null and b/python/edu/resources/tips/images/completion_in_html.png differ diff --git a/python/edu/resources/tips/images/completion_in_html2.png b/python/edu/resources/tips/images/completion_in_html2.png new file mode 100644 index 000000000000..b51fb2c76303 Binary files /dev/null and b/python/edu/resources/tips/images/completion_in_html2.png differ diff --git a/python/edu/resources/tips/images/completion_in_html2@2x.png b/python/edu/resources/tips/images/completion_in_html2@2x.png new file mode 100644 index 000000000000..748e6678fb80 Binary files /dev/null and b/python/edu/resources/tips/images/completion_in_html2@2x.png differ diff --git a/python/edu/resources/tips/images/completion_in_html2@2x_dark.png b/python/edu/resources/tips/images/completion_in_html2@2x_dark.png new file mode 100644 index 000000000000..cb619b32d763 Binary files /dev/null and b/python/edu/resources/tips/images/completion_in_html2@2x_dark.png differ diff --git a/python/edu/resources/tips/images/completion_in_html2_dark.png b/python/edu/resources/tips/images/completion_in_html2_dark.png new file mode 100644 index 000000000000..306428233ccf Binary files /dev/null and b/python/edu/resources/tips/images/completion_in_html2_dark.png differ diff --git a/python/edu/resources/tips/images/completion_in_html@2x.png b/python/edu/resources/tips/images/completion_in_html@2x.png new file mode 100644 index 000000000000..6a62d727ee18 Binary files /dev/null and b/python/edu/resources/tips/images/completion_in_html@2x.png differ diff --git a/python/edu/resources/tips/images/completion_in_html@2x_dark.png b/python/edu/resources/tips/images/completion_in_html@2x_dark.png new file mode 100644 index 000000000000..ffbf46694702 Binary files /dev/null and b/python/edu/resources/tips/images/completion_in_html@2x_dark.png differ diff --git a/python/edu/resources/tips/images/completion_in_html_dark.png b/python/edu/resources/tips/images/completion_in_html_dark.png new file mode 100644 index 000000000000..f845b3ca343e Binary files /dev/null and b/python/edu/resources/tips/images/completion_in_html_dark.png differ diff --git a/python/edu/resources/tips/images/cssColor.png b/python/edu/resources/tips/images/cssColor.png new file mode 100644 index 000000000000..a6bdd6e6539a Binary files /dev/null and b/python/edu/resources/tips/images/cssColor.png differ diff --git a/python/edu/resources/tips/images/cssColor@2x.png b/python/edu/resources/tips/images/cssColor@2x.png new file mode 100644 index 000000000000..e0f272336d87 Binary files /dev/null and b/python/edu/resources/tips/images/cssColor@2x.png differ diff --git a/python/edu/resources/tips/images/cssColor@2x_dark.png b/python/edu/resources/tips/images/cssColor@2x_dark.png new file mode 100644 index 000000000000..8ff841ee6518 Binary files /dev/null and b/python/edu/resources/tips/images/cssColor@2x_dark.png differ diff --git a/python/edu/resources/tips/images/cssColor_dark.png b/python/edu/resources/tips/images/cssColor_dark.png new file mode 100644 index 000000000000..e37bb9a94361 Binary files /dev/null and b/python/edu/resources/tips/images/cssColor_dark.png differ diff --git a/python/edu/resources/tips/images/ctrl_click.png b/python/edu/resources/tips/images/ctrl_click.png new file mode 100644 index 000000000000..fd35a0329fea Binary files /dev/null and b/python/edu/resources/tips/images/ctrl_click.png differ diff --git a/python/edu/resources/tips/images/ctrl_click@2x.png b/python/edu/resources/tips/images/ctrl_click@2x.png new file mode 100644 index 000000000000..7ce99f948362 Binary files /dev/null and b/python/edu/resources/tips/images/ctrl_click@2x.png differ diff --git a/python/edu/resources/tips/images/ctrl_click@2x_dark.png b/python/edu/resources/tips/images/ctrl_click@2x_dark.png new file mode 100644 index 000000000000..09f5b045dd53 Binary files /dev/null and b/python/edu/resources/tips/images/ctrl_click@2x_dark.png differ diff --git a/python/edu/resources/tips/images/ctrl_click_dark.png b/python/edu/resources/tips/images/ctrl_click_dark.png new file mode 100644 index 000000000000..dc331f7dd952 Binary files /dev/null and b/python/edu/resources/tips/images/ctrl_click_dark.png differ diff --git a/python/edu/resources/tips/images/ctrl_shift_i.png b/python/edu/resources/tips/images/ctrl_shift_i.png new file mode 100644 index 000000000000..fbb8786d0a8d Binary files /dev/null and b/python/edu/resources/tips/images/ctrl_shift_i.png differ diff --git a/python/edu/resources/tips/images/ctrl_shift_i@2x.png b/python/edu/resources/tips/images/ctrl_shift_i@2x.png new file mode 100644 index 000000000000..6bb2978dd797 Binary files /dev/null and b/python/edu/resources/tips/images/ctrl_shift_i@2x.png differ diff --git a/python/edu/resources/tips/images/ctrl_shift_i@2x_dark.png b/python/edu/resources/tips/images/ctrl_shift_i@2x_dark.png new file mode 100644 index 000000000000..3e29df03f92b Binary files /dev/null and b/python/edu/resources/tips/images/ctrl_shift_i@2x_dark.png differ diff --git a/python/edu/resources/tips/images/ctrl_shift_i_dark.png b/python/edu/resources/tips/images/ctrl_shift_i_dark.png new file mode 100644 index 000000000000..61201ff0d5da Binary files /dev/null and b/python/edu/resources/tips/images/ctrl_shift_i_dark.png differ diff --git a/python/edu/resources/tips/images/ctrl_shift_in_lookup.png b/python/edu/resources/tips/images/ctrl_shift_in_lookup.png new file mode 100644 index 000000000000..073b31b4b15c Binary files /dev/null and b/python/edu/resources/tips/images/ctrl_shift_in_lookup.png differ diff --git a/python/edu/resources/tips/images/ctrl_shift_in_lookup@2x.png b/python/edu/resources/tips/images/ctrl_shift_in_lookup@2x.png new file mode 100644 index 000000000000..ee49d459fcab Binary files /dev/null and b/python/edu/resources/tips/images/ctrl_shift_in_lookup@2x.png differ diff --git a/python/edu/resources/tips/images/ctrl_shift_in_lookup@2x_dark.png b/python/edu/resources/tips/images/ctrl_shift_in_lookup@2x_dark.png new file mode 100644 index 000000000000..5730d9058dc9 Binary files /dev/null and b/python/edu/resources/tips/images/ctrl_shift_in_lookup@2x_dark.png differ diff --git a/python/edu/resources/tips/images/ctrl_shift_in_lookup_dark.png b/python/edu/resources/tips/images/ctrl_shift_in_lookup_dark.png new file mode 100644 index 000000000000..2ab9f9f93ebe Binary files /dev/null and b/python/edu/resources/tips/images/ctrl_shift_in_lookup_dark.png differ diff --git a/python/edu/resources/tips/images/default_template_language.png b/python/edu/resources/tips/images/default_template_language.png new file mode 100644 index 000000000000..9e46fb11450f Binary files /dev/null and b/python/edu/resources/tips/images/default_template_language.png differ diff --git a/python/edu/resources/tips/images/default_template_language@2x.png b/python/edu/resources/tips/images/default_template_language@2x.png new file mode 100644 index 000000000000..dddd008123e7 Binary files /dev/null and b/python/edu/resources/tips/images/default_template_language@2x.png differ diff --git a/python/edu/resources/tips/images/default_template_language@2x_dark.png b/python/edu/resources/tips/images/default_template_language@2x_dark.png new file mode 100644 index 000000000000..fa48561f94ec Binary files /dev/null and b/python/edu/resources/tips/images/default_template_language@2x_dark.png differ diff --git a/python/edu/resources/tips/images/default_template_language_dark.png b/python/edu/resources/tips/images/default_template_language_dark.png new file mode 100644 index 000000000000..486b30703799 Binary files /dev/null and b/python/edu/resources/tips/images/default_template_language_dark.png differ diff --git a/python/edu/resources/tips/images/deployment.png b/python/edu/resources/tips/images/deployment.png new file mode 100644 index 000000000000..f104afa208b5 Binary files /dev/null and b/python/edu/resources/tips/images/deployment.png differ diff --git a/python/edu/resources/tips/images/deployment@2x.png b/python/edu/resources/tips/images/deployment@2x.png new file mode 100644 index 000000000000..af593c25b0e0 Binary files /dev/null and b/python/edu/resources/tips/images/deployment@2x.png differ diff --git a/python/edu/resources/tips/images/deployment@2x_dark.png b/python/edu/resources/tips/images/deployment@2x_dark.png new file mode 100644 index 000000000000..ec478c090d29 Binary files /dev/null and b/python/edu/resources/tips/images/deployment@2x_dark.png differ diff --git a/python/edu/resources/tips/images/deployment_dark.png b/python/edu/resources/tips/images/deployment_dark.png new file mode 100644 index 000000000000..6ed4686a0f70 Binary files /dev/null and b/python/edu/resources/tips/images/deployment_dark.png differ diff --git a/python/edu/resources/tips/images/dragToOpen.png b/python/edu/resources/tips/images/dragToOpen.png new file mode 100644 index 000000000000..30f564789e09 Binary files /dev/null and b/python/edu/resources/tips/images/dragToOpen.png differ diff --git a/python/edu/resources/tips/images/dragToOpen@2x.png b/python/edu/resources/tips/images/dragToOpen@2x.png new file mode 100644 index 000000000000..039e85b28a86 Binary files /dev/null and b/python/edu/resources/tips/images/dragToOpen@2x.png differ diff --git a/python/edu/resources/tips/images/dragToOpen@2x_dark.png b/python/edu/resources/tips/images/dragToOpen@2x_dark.png new file mode 100644 index 000000000000..55e3a479e795 Binary files /dev/null and b/python/edu/resources/tips/images/dragToOpen@2x_dark.png differ diff --git a/python/edu/resources/tips/images/dragToOpen_dark.png b/python/edu/resources/tips/images/dragToOpen_dark.png new file mode 100644 index 000000000000..666446e5e761 Binary files /dev/null and b/python/edu/resources/tips/images/dragToOpen_dark.png differ diff --git a/python/edu/resources/tips/images/editregexp.png b/python/edu/resources/tips/images/editregexp.png new file mode 100644 index 000000000000..ccb059c5932a Binary files /dev/null and b/python/edu/resources/tips/images/editregexp.png differ diff --git a/python/edu/resources/tips/images/editregexp@2x.png b/python/edu/resources/tips/images/editregexp@2x.png new file mode 100644 index 000000000000..1d80b7ad272e Binary files /dev/null and b/python/edu/resources/tips/images/editregexp@2x.png differ diff --git a/python/edu/resources/tips/images/editregexp@2x_dark.png b/python/edu/resources/tips/images/editregexp@2x_dark.png new file mode 100644 index 000000000000..b2fb91911468 Binary files /dev/null and b/python/edu/resources/tips/images/editregexp@2x_dark.png differ diff --git a/python/edu/resources/tips/images/editregexp_dark.png b/python/edu/resources/tips/images/editregexp_dark.png new file mode 100644 index 000000000000..37a44fc8bf72 Binary files /dev/null and b/python/edu/resources/tips/images/editregexp_dark.png differ diff --git a/python/edu/resources/tips/images/emmet.png b/python/edu/resources/tips/images/emmet.png new file mode 100644 index 000000000000..6c616f5376f5 Binary files /dev/null and b/python/edu/resources/tips/images/emmet.png differ diff --git a/python/edu/resources/tips/images/emmet@2x.png b/python/edu/resources/tips/images/emmet@2x.png new file mode 100644 index 000000000000..2c5d963fa8b9 Binary files /dev/null and b/python/edu/resources/tips/images/emmet@2x.png differ diff --git a/python/edu/resources/tips/images/emmet@2x_dark.png b/python/edu/resources/tips/images/emmet@2x_dark.png new file mode 100644 index 000000000000..37f6952953d8 Binary files /dev/null and b/python/edu/resources/tips/images/emmet@2x_dark.png differ diff --git a/python/edu/resources/tips/images/emmet_dark.png b/python/edu/resources/tips/images/emmet_dark.png new file mode 100644 index 000000000000..671bcd3aec36 Binary files /dev/null and b/python/edu/resources/tips/images/emmet_dark.png differ diff --git a/python/edu/resources/tips/images/enterDirectory.png b/python/edu/resources/tips/images/enterDirectory.png new file mode 100644 index 000000000000..f5a882e53e6d Binary files /dev/null and b/python/edu/resources/tips/images/enterDirectory.png differ diff --git a/python/edu/resources/tips/images/enterDirectory@2x.png b/python/edu/resources/tips/images/enterDirectory@2x.png new file mode 100644 index 000000000000..bfbadea02f63 Binary files /dev/null and b/python/edu/resources/tips/images/enterDirectory@2x.png differ diff --git a/python/edu/resources/tips/images/enterDirectory@2x_dark.png b/python/edu/resources/tips/images/enterDirectory@2x_dark.png new file mode 100644 index 000000000000..b4e271b043bd Binary files /dev/null and b/python/edu/resources/tips/images/enterDirectory@2x_dark.png differ diff --git a/python/edu/resources/tips/images/enterDirectory_dark.png b/python/edu/resources/tips/images/enterDirectory_dark.png new file mode 100644 index 000000000000..1facfef51c3c Binary files /dev/null and b/python/edu/resources/tips/images/enterDirectory_dark.png differ diff --git a/python/edu/resources/tips/images/extract_variable_1.png b/python/edu/resources/tips/images/extract_variable_1.png new file mode 100644 index 000000000000..60e5d66a66ff Binary files /dev/null and b/python/edu/resources/tips/images/extract_variable_1.png differ diff --git a/python/edu/resources/tips/images/extract_variable_1@2x.png b/python/edu/resources/tips/images/extract_variable_1@2x.png new file mode 100644 index 000000000000..b468e5f964af Binary files /dev/null and b/python/edu/resources/tips/images/extract_variable_1@2x.png differ diff --git a/python/edu/resources/tips/images/extract_variable_1@2x_dark.png b/python/edu/resources/tips/images/extract_variable_1@2x_dark.png new file mode 100644 index 000000000000..dbc02dbce181 Binary files /dev/null and b/python/edu/resources/tips/images/extract_variable_1@2x_dark.png differ diff --git a/python/edu/resources/tips/images/extract_variable_1_dark.png b/python/edu/resources/tips/images/extract_variable_1_dark.png new file mode 100644 index 000000000000..70647667d289 Binary files /dev/null and b/python/edu/resources/tips/images/extract_variable_1_dark.png differ diff --git a/python/edu/resources/tips/images/extract_variable_2.png b/python/edu/resources/tips/images/extract_variable_2.png new file mode 100644 index 000000000000..4e3b767db005 Binary files /dev/null and b/python/edu/resources/tips/images/extract_variable_2.png differ diff --git a/python/edu/resources/tips/images/extract_variable_2@2x.png b/python/edu/resources/tips/images/extract_variable_2@2x.png new file mode 100644 index 000000000000..49cdf5237c0f Binary files /dev/null and b/python/edu/resources/tips/images/extract_variable_2@2x.png differ diff --git a/python/edu/resources/tips/images/extract_variable_2@2x_dark.png b/python/edu/resources/tips/images/extract_variable_2@2x_dark.png new file mode 100644 index 000000000000..120e9a5ace28 Binary files /dev/null and b/python/edu/resources/tips/images/extract_variable_2@2x_dark.png differ diff --git a/python/edu/resources/tips/images/extract_variable_2_dark.png b/python/edu/resources/tips/images/extract_variable_2_dark.png new file mode 100644 index 000000000000..07e67b75cd86 Binary files /dev/null and b/python/edu/resources/tips/images/extract_variable_2_dark.png differ diff --git a/python/edu/resources/tips/images/gotoFileLineNumber.png b/python/edu/resources/tips/images/gotoFileLineNumber.png new file mode 100644 index 000000000000..3d4f72a847cc Binary files /dev/null and b/python/edu/resources/tips/images/gotoFileLineNumber.png differ diff --git a/python/edu/resources/tips/images/gotoFileLineNumber@2x.png b/python/edu/resources/tips/images/gotoFileLineNumber@2x.png new file mode 100644 index 000000000000..5727edb925e0 Binary files /dev/null and b/python/edu/resources/tips/images/gotoFileLineNumber@2x.png differ diff --git a/python/edu/resources/tips/images/gotoFileLineNumber@2x_dark.png b/python/edu/resources/tips/images/gotoFileLineNumber@2x_dark.png new file mode 100644 index 000000000000..5bd7da5a480e Binary files /dev/null and b/python/edu/resources/tips/images/gotoFileLineNumber@2x_dark.png differ diff --git a/python/edu/resources/tips/images/gotoFileLineNumber_dark.png b/python/edu/resources/tips/images/gotoFileLineNumber_dark.png new file mode 100644 index 000000000000..52c9137e1205 Binary files /dev/null and b/python/edu/resources/tips/images/gotoFileLineNumber_dark.png differ diff --git a/python/edu/resources/tips/images/goto_class.png b/python/edu/resources/tips/images/goto_class.png new file mode 100644 index 000000000000..8eb339e8ff8d Binary files /dev/null and b/python/edu/resources/tips/images/goto_class.png differ diff --git a/python/edu/resources/tips/images/goto_class@2x.png b/python/edu/resources/tips/images/goto_class@2x.png new file mode 100644 index 000000000000..e7fd228b3e25 Binary files /dev/null and b/python/edu/resources/tips/images/goto_class@2x.png differ diff --git a/python/edu/resources/tips/images/goto_class@2x_dark.png b/python/edu/resources/tips/images/goto_class@2x_dark.png new file mode 100644 index 000000000000..5c524ba1e61e Binary files /dev/null and b/python/edu/resources/tips/images/goto_class@2x_dark.png differ diff --git a/python/edu/resources/tips/images/goto_class_dark.png b/python/edu/resources/tips/images/goto_class_dark.png new file mode 100644 index 000000000000..6a9b461d86f7 Binary files /dev/null and b/python/edu/resources/tips/images/goto_class_dark.png differ diff --git a/python/edu/resources/tips/images/goto_symbol.png b/python/edu/resources/tips/images/goto_symbol.png new file mode 100644 index 000000000000..d10fdc33878f Binary files /dev/null and b/python/edu/resources/tips/images/goto_symbol.png differ diff --git a/python/edu/resources/tips/images/goto_symbol@2x.png b/python/edu/resources/tips/images/goto_symbol@2x.png new file mode 100644 index 000000000000..86bae1245f3c Binary files /dev/null and b/python/edu/resources/tips/images/goto_symbol@2x.png differ diff --git a/python/edu/resources/tips/images/goto_symbol@2x_dark.png b/python/edu/resources/tips/images/goto_symbol@2x_dark.png new file mode 100644 index 000000000000..03bf40eeff8b Binary files /dev/null and b/python/edu/resources/tips/images/goto_symbol@2x_dark.png differ diff --git a/python/edu/resources/tips/images/goto_symbol_dark.png b/python/edu/resources/tips/images/goto_symbol_dark.png new file mode 100644 index 000000000000..201ec6956816 Binary files /dev/null and b/python/edu/resources/tips/images/goto_symbol_dark.png differ diff --git a/python/edu/resources/tips/images/goto_template_icon.png b/python/edu/resources/tips/images/goto_template_icon.png new file mode 100644 index 000000000000..9a6f4f26cf19 Binary files /dev/null and b/python/edu/resources/tips/images/goto_template_icon.png differ diff --git a/python/edu/resources/tips/images/goto_template_icon@2x.png b/python/edu/resources/tips/images/goto_template_icon@2x.png new file mode 100644 index 000000000000..28f1ef8593c0 Binary files /dev/null and b/python/edu/resources/tips/images/goto_template_icon@2x.png differ diff --git a/python/edu/resources/tips/images/goto_template_icon@2x_dark.png b/python/edu/resources/tips/images/goto_template_icon@2x_dark.png new file mode 100644 index 000000000000..b9f13e1db3ce Binary files /dev/null and b/python/edu/resources/tips/images/goto_template_icon@2x_dark.png differ diff --git a/python/edu/resources/tips/images/goto_template_icon_dark.png b/python/edu/resources/tips/images/goto_template_icon_dark.png new file mode 100644 index 000000000000..5e91cc9e8b48 Binary files /dev/null and b/python/edu/resources/tips/images/goto_template_icon_dark.png differ diff --git a/python/edu/resources/tips/images/goto_view.png b/python/edu/resources/tips/images/goto_view.png new file mode 100644 index 000000000000..66fe57144daa Binary files /dev/null and b/python/edu/resources/tips/images/goto_view.png differ diff --git a/python/edu/resources/tips/images/goto_view@2x.png b/python/edu/resources/tips/images/goto_view@2x.png new file mode 100644 index 000000000000..8d7d74b867f5 Binary files /dev/null and b/python/edu/resources/tips/images/goto_view@2x.png differ diff --git a/python/edu/resources/tips/images/goto_view@2x_dark.png b/python/edu/resources/tips/images/goto_view@2x_dark.png new file mode 100644 index 000000000000..11d399b65041 Binary files /dev/null and b/python/edu/resources/tips/images/goto_view@2x_dark.png differ diff --git a/python/edu/resources/tips/images/goto_view_dark.png b/python/edu/resources/tips/images/goto_view_dark.png new file mode 100644 index 000000000000..df77bd4b745f Binary files /dev/null and b/python/edu/resources/tips/images/goto_view_dark.png differ diff --git a/python/edu/resources/tips/images/goto_view_icon.png b/python/edu/resources/tips/images/goto_view_icon.png new file mode 100644 index 000000000000..4f7dab95b0aa Binary files /dev/null and b/python/edu/resources/tips/images/goto_view_icon.png differ diff --git a/python/edu/resources/tips/images/goto_view_icon@2x.png b/python/edu/resources/tips/images/goto_view_icon@2x.png new file mode 100644 index 000000000000..579d967dd721 Binary files /dev/null and b/python/edu/resources/tips/images/goto_view_icon@2x.png differ diff --git a/python/edu/resources/tips/images/goto_view_icon@2x_dark.png b/python/edu/resources/tips/images/goto_view_icon@2x_dark.png new file mode 100644 index 000000000000..9a9c9255aeb1 Binary files /dev/null and b/python/edu/resources/tips/images/goto_view_icon@2x_dark.png differ diff --git a/python/edu/resources/tips/images/goto_view_icon_dark.png b/python/edu/resources/tips/images/goto_view_icon_dark.png new file mode 100644 index 000000000000..dd6a508261ed Binary files /dev/null and b/python/edu/resources/tips/images/goto_view_icon_dark.png differ diff --git a/python/edu/resources/tips/images/hierarchy_browser.png b/python/edu/resources/tips/images/hierarchy_browser.png new file mode 100644 index 000000000000..05bbb92f486a Binary files /dev/null and b/python/edu/resources/tips/images/hierarchy_browser.png differ diff --git a/python/edu/resources/tips/images/hierarchy_browser@2x.png b/python/edu/resources/tips/images/hierarchy_browser@2x.png new file mode 100644 index 000000000000..a2f4cd29410e Binary files /dev/null and b/python/edu/resources/tips/images/hierarchy_browser@2x.png differ diff --git a/python/edu/resources/tips/images/hierarchy_browser@2x_dark.png b/python/edu/resources/tips/images/hierarchy_browser@2x_dark.png new file mode 100644 index 000000000000..4b120e8f7ff6 Binary files /dev/null and b/python/edu/resources/tips/images/hierarchy_browser@2x_dark.png differ diff --git a/python/edu/resources/tips/images/hierarchy_browser_dark.png b/python/edu/resources/tips/images/hierarchy_browser_dark.png new file mode 100644 index 000000000000..d52835cbd23f Binary files /dev/null and b/python/edu/resources/tips/images/hierarchy_browser_dark.png differ diff --git a/python/edu/resources/tips/images/image_completion.png b/python/edu/resources/tips/images/image_completion.png new file mode 100644 index 000000000000..56a3599aac4e Binary files /dev/null and b/python/edu/resources/tips/images/image_completion.png differ diff --git a/python/edu/resources/tips/images/image_completion@2x.png b/python/edu/resources/tips/images/image_completion@2x.png new file mode 100644 index 000000000000..2d96d83c224a Binary files /dev/null and b/python/edu/resources/tips/images/image_completion@2x.png differ diff --git a/python/edu/resources/tips/images/image_completion@2x_dark.png b/python/edu/resources/tips/images/image_completion@2x_dark.png new file mode 100644 index 000000000000..99f6e96a7775 Binary files /dev/null and b/python/edu/resources/tips/images/image_completion@2x_dark.png differ diff --git a/python/edu/resources/tips/images/image_completion_dark.png b/python/edu/resources/tips/images/image_completion_dark.png new file mode 100644 index 000000000000..3b396c908758 Binary files /dev/null and b/python/edu/resources/tips/images/image_completion_dark.png differ diff --git a/python/edu/resources/tips/images/image_lookup.png b/python/edu/resources/tips/images/image_lookup.png new file mode 100644 index 000000000000..cdff22d10bee Binary files /dev/null and b/python/edu/resources/tips/images/image_lookup.png differ diff --git a/python/edu/resources/tips/images/image_lookup@2x.png b/python/edu/resources/tips/images/image_lookup@2x.png new file mode 100644 index 000000000000..05075dd8ed47 Binary files /dev/null and b/python/edu/resources/tips/images/image_lookup@2x.png differ diff --git a/python/edu/resources/tips/images/image_lookup@2x_dark.png b/python/edu/resources/tips/images/image_lookup@2x_dark.png new file mode 100644 index 000000000000..6ac2a465fc40 Binary files /dev/null and b/python/edu/resources/tips/images/image_lookup@2x_dark.png differ diff --git a/python/edu/resources/tips/images/image_lookup_dark.png b/python/edu/resources/tips/images/image_lookup_dark.png new file mode 100644 index 000000000000..75af27a9d2e3 Binary files /dev/null and b/python/edu/resources/tips/images/image_lookup_dark.png differ diff --git a/python/edu/resources/tips/images/issueNavigation.png b/python/edu/resources/tips/images/issueNavigation.png new file mode 100644 index 000000000000..1fe942275cae Binary files /dev/null and b/python/edu/resources/tips/images/issueNavigation.png differ diff --git a/python/edu/resources/tips/images/issueNavigation1.png b/python/edu/resources/tips/images/issueNavigation1.png new file mode 100644 index 000000000000..bc5c7bb84454 Binary files /dev/null and b/python/edu/resources/tips/images/issueNavigation1.png differ diff --git a/python/edu/resources/tips/images/issueNavigation1@2x.png b/python/edu/resources/tips/images/issueNavigation1@2x.png new file mode 100644 index 000000000000..31b4d3f9b114 Binary files /dev/null and b/python/edu/resources/tips/images/issueNavigation1@2x.png differ diff --git a/python/edu/resources/tips/images/issueNavigation1@2x_dark.png b/python/edu/resources/tips/images/issueNavigation1@2x_dark.png new file mode 100644 index 000000000000..9a654a24f8f0 Binary files /dev/null and b/python/edu/resources/tips/images/issueNavigation1@2x_dark.png differ diff --git a/python/edu/resources/tips/images/issueNavigation1_dark.png b/python/edu/resources/tips/images/issueNavigation1_dark.png new file mode 100644 index 000000000000..fa1cdc666dca Binary files /dev/null and b/python/edu/resources/tips/images/issueNavigation1_dark.png differ diff --git a/python/edu/resources/tips/images/issueNavigation@2x.png b/python/edu/resources/tips/images/issueNavigation@2x.png new file mode 100644 index 000000000000..835c9dba3bab Binary files /dev/null and b/python/edu/resources/tips/images/issueNavigation@2x.png differ diff --git a/python/edu/resources/tips/images/issueNavigation@2x_dark.png b/python/edu/resources/tips/images/issueNavigation@2x_dark.png new file mode 100644 index 000000000000..47e4270ab066 Binary files /dev/null and b/python/edu/resources/tips/images/issueNavigation@2x_dark.png differ diff --git a/python/edu/resources/tips/images/issueNavigation_dark.png b/python/edu/resources/tips/images/issueNavigation_dark.png new file mode 100644 index 000000000000..4085ed8913df Binary files /dev/null and b/python/edu/resources/tips/images/issueNavigation_dark.png differ diff --git a/python/edu/resources/tips/images/jumplist.png b/python/edu/resources/tips/images/jumplist.png new file mode 100644 index 000000000000..6a195bcdadb0 Binary files /dev/null and b/python/edu/resources/tips/images/jumplist.png differ diff --git a/python/edu/resources/tips/images/jumplist@2x.png b/python/edu/resources/tips/images/jumplist@2x.png new file mode 100644 index 000000000000..a3b8d7e182fe Binary files /dev/null and b/python/edu/resources/tips/images/jumplist@2x.png differ diff --git a/python/edu/resources/tips/images/jumplist@2x_dark.png b/python/edu/resources/tips/images/jumplist@2x_dark.png new file mode 100644 index 000000000000..b9b279e38813 Binary files /dev/null and b/python/edu/resources/tips/images/jumplist@2x_dark.png differ diff --git a/python/edu/resources/tips/images/jumplist_dark.png b/python/edu/resources/tips/images/jumplist_dark.png new file mode 100644 index 000000000000..3f0e90659c80 Binary files /dev/null and b/python/edu/resources/tips/images/jumplist_dark.png differ diff --git a/python/edu/resources/tips/images/launch_console_in_debugger.png b/python/edu/resources/tips/images/launch_console_in_debugger.png new file mode 100644 index 000000000000..77250807b2ff Binary files /dev/null and b/python/edu/resources/tips/images/launch_console_in_debugger.png differ diff --git a/python/edu/resources/tips/images/launch_console_in_debugger@2x.png b/python/edu/resources/tips/images/launch_console_in_debugger@2x.png new file mode 100644 index 000000000000..468c49c70e05 Binary files /dev/null and b/python/edu/resources/tips/images/launch_console_in_debugger@2x.png differ diff --git a/python/edu/resources/tips/images/launch_console_in_debugger@2x_dark.png b/python/edu/resources/tips/images/launch_console_in_debugger@2x_dark.png new file mode 100644 index 000000000000..5f5381c8936d Binary files /dev/null and b/python/edu/resources/tips/images/launch_console_in_debugger@2x_dark.png differ diff --git a/python/edu/resources/tips/images/launch_console_in_debugger_dark.png b/python/edu/resources/tips/images/launch_console_in_debugger_dark.png new file mode 100644 index 000000000000..9fa62e0b9bb0 Binary files /dev/null and b/python/edu/resources/tips/images/launch_console_in_debugger_dark.png differ diff --git a/python/edu/resources/tips/images/line_separator.png b/python/edu/resources/tips/images/line_separator.png new file mode 100644 index 000000000000..61d20d18f3d7 Binary files /dev/null and b/python/edu/resources/tips/images/line_separator.png differ diff --git a/python/edu/resources/tips/images/line_separator@2x.png b/python/edu/resources/tips/images/line_separator@2x.png new file mode 100644 index 000000000000..bf67e11e42e8 Binary files /dev/null and b/python/edu/resources/tips/images/line_separator@2x.png differ diff --git a/python/edu/resources/tips/images/line_separator@2x_dark.png b/python/edu/resources/tips/images/line_separator@2x_dark.png new file mode 100644 index 000000000000..eb6f8ea3111f Binary files /dev/null and b/python/edu/resources/tips/images/line_separator@2x_dark.png differ diff --git a/python/edu/resources/tips/images/line_separator_dark.png b/python/edu/resources/tips/images/line_separator_dark.png new file mode 100644 index 000000000000..3d8b1a68ee53 Binary files /dev/null and b/python/edu/resources/tips/images/line_separator_dark.png differ diff --git a/python/edu/resources/tips/images/line_separator_folder.png b/python/edu/resources/tips/images/line_separator_folder.png new file mode 100644 index 000000000000..4ae8dc021f66 Binary files /dev/null and b/python/edu/resources/tips/images/line_separator_folder.png differ diff --git a/python/edu/resources/tips/images/line_separator_folder@2x.png b/python/edu/resources/tips/images/line_separator_folder@2x.png new file mode 100644 index 000000000000..782b58b8ad0d Binary files /dev/null and b/python/edu/resources/tips/images/line_separator_folder@2x.png differ diff --git a/python/edu/resources/tips/images/line_separator_folder@2x_dark.png b/python/edu/resources/tips/images/line_separator_folder@2x_dark.png new file mode 100644 index 000000000000..d8ab14857a9b Binary files /dev/null and b/python/edu/resources/tips/images/line_separator_folder@2x_dark.png differ diff --git a/python/edu/resources/tips/images/line_separator_folder_dark.png b/python/edu/resources/tips/images/line_separator_folder_dark.png new file mode 100644 index 000000000000..c02c201218a2 Binary files /dev/null and b/python/edu/resources/tips/images/line_separator_folder_dark.png differ diff --git a/python/edu/resources/tips/images/live_templates_1.png b/python/edu/resources/tips/images/live_templates_1.png new file mode 100644 index 000000000000..b0fc1051a752 Binary files /dev/null and b/python/edu/resources/tips/images/live_templates_1.png differ diff --git a/python/edu/resources/tips/images/live_templates_1@2x.png b/python/edu/resources/tips/images/live_templates_1@2x.png new file mode 100644 index 000000000000..ec456208d61d Binary files /dev/null and b/python/edu/resources/tips/images/live_templates_1@2x.png differ diff --git a/python/edu/resources/tips/images/live_templates_1@2x_dark.png b/python/edu/resources/tips/images/live_templates_1@2x_dark.png new file mode 100644 index 000000000000..c4dd574ab50e Binary files /dev/null and b/python/edu/resources/tips/images/live_templates_1@2x_dark.png differ diff --git a/python/edu/resources/tips/images/live_templates_1_dark.png b/python/edu/resources/tips/images/live_templates_1_dark.png new file mode 100644 index 000000000000..8e3da85d2b62 Binary files /dev/null and b/python/edu/resources/tips/images/live_templates_1_dark.png differ diff --git a/python/edu/resources/tips/images/live_templates_2.png b/python/edu/resources/tips/images/live_templates_2.png new file mode 100644 index 000000000000..2ed16fb57791 Binary files /dev/null and b/python/edu/resources/tips/images/live_templates_2.png differ diff --git a/python/edu/resources/tips/images/live_templates_2@2x.png b/python/edu/resources/tips/images/live_templates_2@2x.png new file mode 100644 index 000000000000..54e6b059cd03 Binary files /dev/null and b/python/edu/resources/tips/images/live_templates_2@2x.png differ diff --git a/python/edu/resources/tips/images/live_templates_2@2x_dark.png b/python/edu/resources/tips/images/live_templates_2@2x_dark.png new file mode 100644 index 000000000000..89fbb741fc1a Binary files /dev/null and b/python/edu/resources/tips/images/live_templates_2@2x_dark.png differ diff --git a/python/edu/resources/tips/images/live_templates_2_dark.png b/python/edu/resources/tips/images/live_templates_2_dark.png new file mode 100644 index 000000000000..3431fdedf244 Binary files /dev/null and b/python/edu/resources/tips/images/live_templates_2_dark.png differ diff --git a/python/edu/resources/tips/images/lower_left.png b/python/edu/resources/tips/images/lower_left.png new file mode 100644 index 000000000000..771913eec97e Binary files /dev/null and b/python/edu/resources/tips/images/lower_left.png differ diff --git a/python/edu/resources/tips/images/lower_left@2x.png b/python/edu/resources/tips/images/lower_left@2x.png new file mode 100644 index 000000000000..2839f4099299 Binary files /dev/null and b/python/edu/resources/tips/images/lower_left@2x.png differ diff --git a/python/edu/resources/tips/images/lower_left@2x_dark.png b/python/edu/resources/tips/images/lower_left@2x_dark.png new file mode 100644 index 000000000000..2c2a582a1db7 Binary files /dev/null and b/python/edu/resources/tips/images/lower_left@2x_dark.png differ diff --git a/python/edu/resources/tips/images/lower_left_dark.png b/python/edu/resources/tips/images/lower_left_dark.png new file mode 100644 index 000000000000..19996d76492c Binary files /dev/null and b/python/edu/resources/tips/images/lower_left_dark.png differ diff --git a/python/edu/resources/tips/images/managepy.png b/python/edu/resources/tips/images/managepy.png new file mode 100644 index 000000000000..6212233b8f49 Binary files /dev/null and b/python/edu/resources/tips/images/managepy.png differ diff --git a/python/edu/resources/tips/images/managepy@2x.png b/python/edu/resources/tips/images/managepy@2x.png new file mode 100644 index 000000000000..c29d6b71ef79 Binary files /dev/null and b/python/edu/resources/tips/images/managepy@2x.png differ diff --git a/python/edu/resources/tips/images/managepy@2x_dark.png b/python/edu/resources/tips/images/managepy@2x_dark.png new file mode 100644 index 000000000000..d87785601ced Binary files /dev/null and b/python/edu/resources/tips/images/managepy@2x_dark.png differ diff --git a/python/edu/resources/tips/images/managepy_dark.png b/python/edu/resources/tips/images/managepy_dark.png new file mode 100644 index 000000000000..9228a0d1c056 Binary files /dev/null and b/python/edu/resources/tips/images/managepy_dark.png differ diff --git a/python/edu/resources/tips/images/method_separator.png b/python/edu/resources/tips/images/method_separator.png new file mode 100644 index 000000000000..e458b8246566 Binary files /dev/null and b/python/edu/resources/tips/images/method_separator.png differ diff --git a/python/edu/resources/tips/images/method_separator@2x.png b/python/edu/resources/tips/images/method_separator@2x.png new file mode 100644 index 000000000000..d7221f809988 Binary files /dev/null and b/python/edu/resources/tips/images/method_separator@2x.png differ diff --git a/python/edu/resources/tips/images/method_separator@2x_dark.png b/python/edu/resources/tips/images/method_separator@2x_dark.png new file mode 100644 index 000000000000..9bd4e5d20b7c Binary files /dev/null and b/python/edu/resources/tips/images/method_separator@2x_dark.png differ diff --git a/python/edu/resources/tips/images/method_separator_dark.png b/python/edu/resources/tips/images/method_separator_dark.png new file mode 100644 index 000000000000..eed48d258960 Binary files /dev/null and b/python/edu/resources/tips/images/method_separator_dark.png differ diff --git a/python/edu/resources/tips/images/move_to_changelist.png b/python/edu/resources/tips/images/move_to_changelist.png new file mode 100644 index 000000000000..e5e95ff23a65 Binary files /dev/null and b/python/edu/resources/tips/images/move_to_changelist.png differ diff --git a/python/edu/resources/tips/images/move_to_changelist@2x.png b/python/edu/resources/tips/images/move_to_changelist@2x.png new file mode 100644 index 000000000000..893f9a9ce930 Binary files /dev/null and b/python/edu/resources/tips/images/move_to_changelist@2x.png differ diff --git a/python/edu/resources/tips/images/move_to_changelist@2x_dark.png b/python/edu/resources/tips/images/move_to_changelist@2x_dark.png new file mode 100644 index 000000000000..389c34e906e4 Binary files /dev/null and b/python/edu/resources/tips/images/move_to_changelist@2x_dark.png differ diff --git a/python/edu/resources/tips/images/move_to_changelist_dark.png b/python/edu/resources/tips/images/move_to_changelist_dark.png new file mode 100644 index 000000000000..057bad2eb926 Binary files /dev/null and b/python/edu/resources/tips/images/move_to_changelist_dark.png differ diff --git a/python/edu/resources/tips/images/move_up_down_witharrows_down.png b/python/edu/resources/tips/images/move_up_down_witharrows_down.png new file mode 100644 index 000000000000..cb9469f63e18 Binary files /dev/null and b/python/edu/resources/tips/images/move_up_down_witharrows_down.png differ diff --git a/python/edu/resources/tips/images/move_up_down_witharrows_down@2x.png b/python/edu/resources/tips/images/move_up_down_witharrows_down@2x.png new file mode 100644 index 000000000000..1d689d73d905 Binary files /dev/null and b/python/edu/resources/tips/images/move_up_down_witharrows_down@2x.png differ diff --git a/python/edu/resources/tips/images/move_up_down_witharrows_down@2x_dark.png b/python/edu/resources/tips/images/move_up_down_witharrows_down@2x_dark.png new file mode 100644 index 000000000000..bb935b007863 Binary files /dev/null and b/python/edu/resources/tips/images/move_up_down_witharrows_down@2x_dark.png differ diff --git a/python/edu/resources/tips/images/move_up_down_witharrows_down_dark.png b/python/edu/resources/tips/images/move_up_down_witharrows_down_dark.png new file mode 100644 index 000000000000..2346d8cfe482 Binary files /dev/null and b/python/edu/resources/tips/images/move_up_down_witharrows_down_dark.png differ diff --git a/python/edu/resources/tips/images/move_up_down_witharrows_initial.png b/python/edu/resources/tips/images/move_up_down_witharrows_initial.png new file mode 100644 index 000000000000..82fd7469e1d2 Binary files /dev/null and b/python/edu/resources/tips/images/move_up_down_witharrows_initial.png differ diff --git a/python/edu/resources/tips/images/move_up_down_witharrows_initial@2x.png b/python/edu/resources/tips/images/move_up_down_witharrows_initial@2x.png new file mode 100644 index 000000000000..bd1792c520a4 Binary files /dev/null and b/python/edu/resources/tips/images/move_up_down_witharrows_initial@2x.png differ diff --git a/python/edu/resources/tips/images/move_up_down_witharrows_initial@2x_dark.png b/python/edu/resources/tips/images/move_up_down_witharrows_initial@2x_dark.png new file mode 100644 index 000000000000..a476ac334c70 Binary files /dev/null and b/python/edu/resources/tips/images/move_up_down_witharrows_initial@2x_dark.png differ diff --git a/python/edu/resources/tips/images/move_up_down_witharrows_initial_dark.png b/python/edu/resources/tips/images/move_up_down_witharrows_initial_dark.png new file mode 100644 index 000000000000..8b84ae8430a7 Binary files /dev/null and b/python/edu/resources/tips/images/move_up_down_witharrows_initial_dark.png differ diff --git a/python/edu/resources/tips/images/move_up_down_witharrows_up.png b/python/edu/resources/tips/images/move_up_down_witharrows_up.png new file mode 100644 index 000000000000..e19c67b445ea Binary files /dev/null and b/python/edu/resources/tips/images/move_up_down_witharrows_up.png differ diff --git a/python/edu/resources/tips/images/move_up_down_witharrows_up@2x.png b/python/edu/resources/tips/images/move_up_down_witharrows_up@2x.png new file mode 100644 index 000000000000..d0008e29dcb2 Binary files /dev/null and b/python/edu/resources/tips/images/move_up_down_witharrows_up@2x.png differ diff --git a/python/edu/resources/tips/images/move_up_down_witharrows_up@2x_dark.png b/python/edu/resources/tips/images/move_up_down_witharrows_up@2x_dark.png new file mode 100644 index 000000000000..124866ed802c Binary files /dev/null and b/python/edu/resources/tips/images/move_up_down_witharrows_up@2x_dark.png differ diff --git a/python/edu/resources/tips/images/move_up_down_witharrows_up_dark.png b/python/edu/resources/tips/images/move_up_down_witharrows_up_dark.png new file mode 100644 index 000000000000..7251cb33ac08 Binary files /dev/null and b/python/edu/resources/tips/images/move_up_down_witharrows_up_dark.png differ diff --git a/python/edu/resources/tips/images/multicursor1@2x.png b/python/edu/resources/tips/images/multicursor1@2x.png new file mode 100755 index 000000000000..29208468a665 Binary files /dev/null and b/python/edu/resources/tips/images/multicursor1@2x.png differ diff --git a/python/edu/resources/tips/images/multicursor1@2x_dark.png b/python/edu/resources/tips/images/multicursor1@2x_dark.png new file mode 100755 index 000000000000..04dbef34c971 Binary files /dev/null and b/python/edu/resources/tips/images/multicursor1@2x_dark.png differ diff --git a/python/edu/resources/tips/images/multicursor@2x.png b/python/edu/resources/tips/images/multicursor@2x.png new file mode 100755 index 000000000000..d771d0a9aa0e Binary files /dev/null and b/python/edu/resources/tips/images/multicursor@2x.png differ diff --git a/python/edu/resources/tips/images/multicursor@2x_dark.png b/python/edu/resources/tips/images/multicursor@2x_dark.png new file mode 100755 index 000000000000..dd93320f7b39 Binary files /dev/null and b/python/edu/resources/tips/images/multicursor@2x_dark.png differ diff --git a/python/edu/resources/tips/images/navigateToFilePath.png b/python/edu/resources/tips/images/navigateToFilePath.png new file mode 100644 index 000000000000..ae4b78955a49 Binary files /dev/null and b/python/edu/resources/tips/images/navigateToFilePath.png differ diff --git a/python/edu/resources/tips/images/navigateToFilePath@2x.png b/python/edu/resources/tips/images/navigateToFilePath@2x.png new file mode 100644 index 000000000000..077f1831b68b Binary files /dev/null and b/python/edu/resources/tips/images/navigateToFilePath@2x.png differ diff --git a/python/edu/resources/tips/images/navigateToFilePath@2x_dark.png b/python/edu/resources/tips/images/navigateToFilePath@2x_dark.png new file mode 100644 index 000000000000..a73df98e5da1 Binary files /dev/null and b/python/edu/resources/tips/images/navigateToFilePath@2x_dark.png differ diff --git a/python/edu/resources/tips/images/navigateToFilePath_dark.png b/python/edu/resources/tips/images/navigateToFilePath_dark.png new file mode 100644 index 000000000000..756020ec39ab Binary files /dev/null and b/python/edu/resources/tips/images/navigateToFilePath_dark.png differ diff --git a/python/edu/resources/tips/images/navigationbar.png b/python/edu/resources/tips/images/navigationbar.png new file mode 100644 index 000000000000..ba8c14720723 Binary files /dev/null and b/python/edu/resources/tips/images/navigationbar.png differ diff --git a/python/edu/resources/tips/images/navigationbar@2x.png b/python/edu/resources/tips/images/navigationbar@2x.png new file mode 100644 index 000000000000..fc2bcd07f705 Binary files /dev/null and b/python/edu/resources/tips/images/navigationbar@2x.png differ diff --git a/python/edu/resources/tips/images/navigationbar@2x_dark.png b/python/edu/resources/tips/images/navigationbar@2x_dark.png new file mode 100644 index 000000000000..5b69d321540a Binary files /dev/null and b/python/edu/resources/tips/images/navigationbar@2x_dark.png differ diff --git a/python/edu/resources/tips/images/navigationbar_dark.png b/python/edu/resources/tips/images/navigationbar_dark.png new file mode 100644 index 000000000000..03c5f6fe2522 Binary files /dev/null and b/python/edu/resources/tips/images/navigationbar_dark.png differ diff --git a/python/edu/resources/tips/images/override_methods.png b/python/edu/resources/tips/images/override_methods.png new file mode 100644 index 000000000000..2234f7fa98b6 Binary files /dev/null and b/python/edu/resources/tips/images/override_methods.png differ diff --git a/python/edu/resources/tips/images/override_methods@2x.png b/python/edu/resources/tips/images/override_methods@2x.png new file mode 100644 index 000000000000..94a83071e0f9 Binary files /dev/null and b/python/edu/resources/tips/images/override_methods@2x.png differ diff --git a/python/edu/resources/tips/images/override_methods@2x_dark.png b/python/edu/resources/tips/images/override_methods@2x_dark.png new file mode 100644 index 000000000000..789ac6ce95ca Binary files /dev/null and b/python/edu/resources/tips/images/override_methods@2x_dark.png differ diff --git a/python/edu/resources/tips/images/override_methods_dark.png b/python/edu/resources/tips/images/override_methods_dark.png new file mode 100644 index 000000000000..3d32dc7b142a Binary files /dev/null and b/python/edu/resources/tips/images/override_methods_dark.png differ diff --git a/python/edu/resources/tips/images/param_info.png b/python/edu/resources/tips/images/param_info.png new file mode 100644 index 000000000000..b0b39e4998c1 Binary files /dev/null and b/python/edu/resources/tips/images/param_info.png differ diff --git a/python/edu/resources/tips/images/param_info@2x.png b/python/edu/resources/tips/images/param_info@2x.png new file mode 100644 index 000000000000..6e63f83dba6a Binary files /dev/null and b/python/edu/resources/tips/images/param_info@2x.png differ diff --git a/python/edu/resources/tips/images/param_info@2x_dark.png b/python/edu/resources/tips/images/param_info@2x_dark.png new file mode 100644 index 000000000000..b65141148638 Binary files /dev/null and b/python/edu/resources/tips/images/param_info@2x_dark.png differ diff --git a/python/edu/resources/tips/images/param_info_dark.png b/python/edu/resources/tips/images/param_info_dark.png new file mode 100644 index 000000000000..dcf76512342e Binary files /dev/null and b/python/edu/resources/tips/images/param_info_dark.png differ diff --git a/python/edu/resources/tips/images/pyColoredFiles.png b/python/edu/resources/tips/images/pyColoredFiles.png new file mode 100644 index 000000000000..b2c7ef9ff282 Binary files /dev/null and b/python/edu/resources/tips/images/pyColoredFiles.png differ diff --git a/python/edu/resources/tips/images/pyColoredFiles@2x.png b/python/edu/resources/tips/images/pyColoredFiles@2x.png new file mode 100644 index 000000000000..3274e2ffaa8c Binary files /dev/null and b/python/edu/resources/tips/images/pyColoredFiles@2x.png differ diff --git a/python/edu/resources/tips/images/pyColoredFiles@2x_dark.png b/python/edu/resources/tips/images/pyColoredFiles@2x_dark.png new file mode 100644 index 000000000000..69e38f9ecac3 Binary files /dev/null and b/python/edu/resources/tips/images/pyColoredFiles@2x_dark.png differ diff --git a/python/edu/resources/tips/images/pyColoredFiles_dark.png b/python/edu/resources/tips/images/pyColoredFiles_dark.png new file mode 100644 index 000000000000..61e0cc1bcf70 Binary files /dev/null and b/python/edu/resources/tips/images/pyColoredFiles_dark.png differ diff --git a/python/edu/resources/tips/images/pyconsole.png b/python/edu/resources/tips/images/pyconsole.png new file mode 100644 index 000000000000..b319f10d9386 Binary files /dev/null and b/python/edu/resources/tips/images/pyconsole.png differ diff --git a/python/edu/resources/tips/images/pyconsole@2x.png b/python/edu/resources/tips/images/pyconsole@2x.png new file mode 100644 index 000000000000..caf7b5c979a7 Binary files /dev/null and b/python/edu/resources/tips/images/pyconsole@2x.png differ diff --git a/python/edu/resources/tips/images/pyconsole@2x_dark.png b/python/edu/resources/tips/images/pyconsole@2x_dark.png new file mode 100644 index 000000000000..b05cee2f17a0 Binary files /dev/null and b/python/edu/resources/tips/images/pyconsole@2x_dark.png differ diff --git a/python/edu/resources/tips/images/pyconsole_dark.png b/python/edu/resources/tips/images/pyconsole_dark.png new file mode 100644 index 000000000000..8748fe1e59f5 Binary files /dev/null and b/python/edu/resources/tips/images/pyconsole_dark.png differ diff --git a/python/edu/resources/tips/images/qdoc_live_template@2x-3.png b/python/edu/resources/tips/images/qdoc_live_template@2x-3.png new file mode 100755 index 000000000000..ae79e7e1bb6d Binary files /dev/null and b/python/edu/resources/tips/images/qdoc_live_template@2x-3.png differ diff --git a/python/edu/resources/tips/images/qdoc_live_template@2x_dark-3.png b/python/edu/resources/tips/images/qdoc_live_template@2x_dark-3.png new file mode 100755 index 000000000000..6b077c641d17 Binary files /dev/null and b/python/edu/resources/tips/images/qdoc_live_template@2x_dark-3.png differ diff --git a/python/edu/resources/tips/images/quick_fix_options.png b/python/edu/resources/tips/images/quick_fix_options.png new file mode 100644 index 000000000000..418a2524380a Binary files /dev/null and b/python/edu/resources/tips/images/quick_fix_options.png differ diff --git a/python/edu/resources/tips/images/quick_fix_options@2x.png b/python/edu/resources/tips/images/quick_fix_options@2x.png new file mode 100644 index 000000000000..21e63469db24 Binary files /dev/null and b/python/edu/resources/tips/images/quick_fix_options@2x.png differ diff --git a/python/edu/resources/tips/images/quick_fix_options@2x_dark.png b/python/edu/resources/tips/images/quick_fix_options@2x_dark.png new file mode 100644 index 000000000000..aaf91a613d20 Binary files /dev/null and b/python/edu/resources/tips/images/quick_fix_options@2x_dark.png differ diff --git a/python/edu/resources/tips/images/quick_fix_options_dark.png b/python/edu/resources/tips/images/quick_fix_options_dark.png new file mode 100644 index 000000000000..8a80f476646e Binary files /dev/null and b/python/edu/resources/tips/images/quick_fix_options_dark.png differ diff --git a/python/edu/resources/tips/images/quick_javadoc.png b/python/edu/resources/tips/images/quick_javadoc.png new file mode 100644 index 000000000000..b19982d2f483 Binary files /dev/null and b/python/edu/resources/tips/images/quick_javadoc.png differ diff --git a/python/edu/resources/tips/images/quick_javadoc@2x.png b/python/edu/resources/tips/images/quick_javadoc@2x.png new file mode 100644 index 000000000000..abbfebcc3056 Binary files /dev/null and b/python/edu/resources/tips/images/quick_javadoc@2x.png differ diff --git a/python/edu/resources/tips/images/quick_javadoc@2x_dark.png b/python/edu/resources/tips/images/quick_javadoc@2x_dark.png new file mode 100644 index 000000000000..8f971f517d76 Binary files /dev/null and b/python/edu/resources/tips/images/quick_javadoc@2x_dark.png differ diff --git a/python/edu/resources/tips/images/quick_javadoc_dark.png b/python/edu/resources/tips/images/quick_javadoc_dark.png new file mode 100644 index 000000000000..7f482d4ec962 Binary files /dev/null and b/python/edu/resources/tips/images/quick_javadoc_dark.png differ diff --git a/python/edu/resources/tips/images/quick_javadoc_in_lookups.png b/python/edu/resources/tips/images/quick_javadoc_in_lookups.png new file mode 100644 index 000000000000..f346e103dd45 Binary files /dev/null and b/python/edu/resources/tips/images/quick_javadoc_in_lookups.png differ diff --git a/python/edu/resources/tips/images/quick_javadoc_in_lookups@2x.png b/python/edu/resources/tips/images/quick_javadoc_in_lookups@2x.png new file mode 100644 index 000000000000..d782d4a39982 Binary files /dev/null and b/python/edu/resources/tips/images/quick_javadoc_in_lookups@2x.png differ diff --git a/python/edu/resources/tips/images/quick_javadoc_in_lookups@2x_dark.png b/python/edu/resources/tips/images/quick_javadoc_in_lookups@2x_dark.png new file mode 100644 index 000000000000..5af062aa49f4 Binary files /dev/null and b/python/edu/resources/tips/images/quick_javadoc_in_lookups@2x_dark.png differ diff --git a/python/edu/resources/tips/images/quick_javadoc_in_lookups_dark.png b/python/edu/resources/tips/images/quick_javadoc_in_lookups_dark.png new file mode 100644 index 000000000000..e1e954f4f153 Binary files /dev/null and b/python/edu/resources/tips/images/quick_javadoc_in_lookups_dark.png differ diff --git a/python/edu/resources/tips/images/quick_switch_scheme.png b/python/edu/resources/tips/images/quick_switch_scheme.png new file mode 100644 index 000000000000..b1f99b5c42cd Binary files /dev/null and b/python/edu/resources/tips/images/quick_switch_scheme.png differ diff --git a/python/edu/resources/tips/images/quick_switch_scheme@2x.png b/python/edu/resources/tips/images/quick_switch_scheme@2x.png new file mode 100644 index 000000000000..7a9a3435eb45 Binary files /dev/null and b/python/edu/resources/tips/images/quick_switch_scheme@2x.png differ diff --git a/python/edu/resources/tips/images/quick_switch_scheme@2x_dark.png b/python/edu/resources/tips/images/quick_switch_scheme@2x_dark.png new file mode 100644 index 000000000000..ee68d67abe07 Binary files /dev/null and b/python/edu/resources/tips/images/quick_switch_scheme@2x_dark.png differ diff --git a/python/edu/resources/tips/images/quick_switch_scheme_dark.png b/python/edu/resources/tips/images/quick_switch_scheme_dark.png new file mode 100644 index 000000000000..0ab7af56669a Binary files /dev/null and b/python/edu/resources/tips/images/quick_switch_scheme_dark.png differ diff --git a/python/edu/resources/tips/images/recentSearch.png b/python/edu/resources/tips/images/recentSearch.png new file mode 100644 index 000000000000..18949394e842 Binary files /dev/null and b/python/edu/resources/tips/images/recentSearch.png differ diff --git a/python/edu/resources/tips/images/recentSearch@2x.png b/python/edu/resources/tips/images/recentSearch@2x.png new file mode 100644 index 000000000000..b39244becd4c Binary files /dev/null and b/python/edu/resources/tips/images/recentSearch@2x.png differ diff --git a/python/edu/resources/tips/images/recentSearch@2x_dark.png b/python/edu/resources/tips/images/recentSearch@2x_dark.png new file mode 100644 index 000000000000..15e255f1aeaf Binary files /dev/null and b/python/edu/resources/tips/images/recentSearch@2x_dark.png differ diff --git a/python/edu/resources/tips/images/recentSearch_dark.png b/python/edu/resources/tips/images/recentSearch_dark.png new file mode 100644 index 000000000000..2c2acc561757 Binary files /dev/null and b/python/edu/resources/tips/images/recentSearch_dark.png differ diff --git a/python/edu/resources/tips/images/recent_changes.png b/python/edu/resources/tips/images/recent_changes.png new file mode 100644 index 000000000000..27470ca76575 Binary files /dev/null and b/python/edu/resources/tips/images/recent_changes.png differ diff --git a/python/edu/resources/tips/images/recent_changes@2x.png b/python/edu/resources/tips/images/recent_changes@2x.png new file mode 100644 index 000000000000..60d873c6de79 Binary files /dev/null and b/python/edu/resources/tips/images/recent_changes@2x.png differ diff --git a/python/edu/resources/tips/images/recent_changes@2x_dark.png b/python/edu/resources/tips/images/recent_changes@2x_dark.png new file mode 100644 index 000000000000..bf0463e9382c Binary files /dev/null and b/python/edu/resources/tips/images/recent_changes@2x_dark.png differ diff --git a/python/edu/resources/tips/images/recent_changes_dark.png b/python/edu/resources/tips/images/recent_changes_dark.png new file mode 100644 index 000000000000..a3abbdecb4f2 Binary files /dev/null and b/python/edu/resources/tips/images/recent_changes_dark.png differ diff --git a/python/edu/resources/tips/images/recent_files_1.png b/python/edu/resources/tips/images/recent_files_1.png new file mode 100644 index 000000000000..c10b423146b6 Binary files /dev/null and b/python/edu/resources/tips/images/recent_files_1.png differ diff --git a/python/edu/resources/tips/images/recent_files_1@2x.png b/python/edu/resources/tips/images/recent_files_1@2x.png new file mode 100644 index 000000000000..634f836858b3 Binary files /dev/null and b/python/edu/resources/tips/images/recent_files_1@2x.png differ diff --git a/python/edu/resources/tips/images/recent_files_1@2x_dark.png b/python/edu/resources/tips/images/recent_files_1@2x_dark.png new file mode 100644 index 000000000000..59ae46a98d76 Binary files /dev/null and b/python/edu/resources/tips/images/recent_files_1@2x_dark.png differ diff --git a/python/edu/resources/tips/images/recent_files_1_dark.png b/python/edu/resources/tips/images/recent_files_1_dark.png new file mode 100644 index 000000000000..125776961430 Binary files /dev/null and b/python/edu/resources/tips/images/recent_files_1_dark.png differ diff --git a/python/edu/resources/tips/images/recent_files_2.png b/python/edu/resources/tips/images/recent_files_2.png new file mode 100644 index 000000000000..05698c860336 Binary files /dev/null and b/python/edu/resources/tips/images/recent_files_2.png differ diff --git a/python/edu/resources/tips/images/recent_files_2@2x.png b/python/edu/resources/tips/images/recent_files_2@2x.png new file mode 100644 index 000000000000..7df083acf60f Binary files /dev/null and b/python/edu/resources/tips/images/recent_files_2@2x.png differ diff --git a/python/edu/resources/tips/images/recent_files_2@2x_dark.png b/python/edu/resources/tips/images/recent_files_2@2x_dark.png new file mode 100644 index 000000000000..f66da1b31829 Binary files /dev/null and b/python/edu/resources/tips/images/recent_files_2@2x_dark.png differ diff --git a/python/edu/resources/tips/images/recent_files_2_dark.png b/python/edu/resources/tips/images/recent_files_2_dark.png new file mode 100644 index 000000000000..99cdf79f99b6 Binary files /dev/null and b/python/edu/resources/tips/images/recent_files_2_dark.png differ diff --git a/python/edu/resources/tips/images/refactor_this.png b/python/edu/resources/tips/images/refactor_this.png new file mode 100644 index 000000000000..1a5fc4982ccb Binary files /dev/null and b/python/edu/resources/tips/images/refactor_this.png differ diff --git a/python/edu/resources/tips/images/refactor_this@2x.png b/python/edu/resources/tips/images/refactor_this@2x.png new file mode 100644 index 000000000000..698889b05840 Binary files /dev/null and b/python/edu/resources/tips/images/refactor_this@2x.png differ diff --git a/python/edu/resources/tips/images/refactor_this@2x_dark.png b/python/edu/resources/tips/images/refactor_this@2x_dark.png new file mode 100644 index 000000000000..78c122a1da71 Binary files /dev/null and b/python/edu/resources/tips/images/refactor_this@2x_dark.png differ diff --git a/python/edu/resources/tips/images/refactor_this_dark.png b/python/edu/resources/tips/images/refactor_this_dark.png new file mode 100644 index 000000000000..a832560c85ae Binary files /dev/null and b/python/edu/resources/tips/images/refactor_this_dark.png differ diff --git a/python/edu/resources/tips/images/rename.png b/python/edu/resources/tips/images/rename.png new file mode 100644 index 000000000000..35d533501f73 Binary files /dev/null and b/python/edu/resources/tips/images/rename.png differ diff --git a/python/edu/resources/tips/images/rename@2x.png b/python/edu/resources/tips/images/rename@2x.png new file mode 100644 index 000000000000..26b49a49eb82 Binary files /dev/null and b/python/edu/resources/tips/images/rename@2x.png differ diff --git a/python/edu/resources/tips/images/rename@2x_dark.png b/python/edu/resources/tips/images/rename@2x_dark.png new file mode 100644 index 000000000000..7bda59490aa9 Binary files /dev/null and b/python/edu/resources/tips/images/rename@2x_dark.png differ diff --git a/python/edu/resources/tips/images/rename_dark.png b/python/edu/resources/tips/images/rename_dark.png new file mode 100644 index 000000000000..c5f96c32554d Binary files /dev/null and b/python/edu/resources/tips/images/rename_dark.png differ diff --git a/python/edu/resources/tips/images/reopen.png b/python/edu/resources/tips/images/reopen.png new file mode 100644 index 000000000000..3cdb2df84786 Binary files /dev/null and b/python/edu/resources/tips/images/reopen.png differ diff --git a/python/edu/resources/tips/images/reopen@2x.png b/python/edu/resources/tips/images/reopen@2x.png new file mode 100644 index 000000000000..a0b61f58ea37 Binary files /dev/null and b/python/edu/resources/tips/images/reopen@2x.png differ diff --git a/python/edu/resources/tips/images/reopen@2x_dark.png b/python/edu/resources/tips/images/reopen@2x_dark.png new file mode 100644 index 000000000000..ed33d6e49c84 Binary files /dev/null and b/python/edu/resources/tips/images/reopen@2x_dark.png differ diff --git a/python/edu/resources/tips/images/reopen_dark.png b/python/edu/resources/tips/images/reopen_dark.png new file mode 100644 index 000000000000..af7ba67c534c Binary files /dev/null and b/python/edu/resources/tips/images/reopen_dark.png differ diff --git a/python/edu/resources/tips/images/searchEverywhere.png b/python/edu/resources/tips/images/searchEverywhere.png new file mode 100644 index 000000000000..639f100b5192 Binary files /dev/null and b/python/edu/resources/tips/images/searchEverywhere.png differ diff --git a/python/edu/resources/tips/images/searchEverywhere@2x.png b/python/edu/resources/tips/images/searchEverywhere@2x.png new file mode 100644 index 000000000000..9ef380cc5b45 Binary files /dev/null and b/python/edu/resources/tips/images/searchEverywhere@2x.png differ diff --git a/python/edu/resources/tips/images/searchEverywhere@2x_dark.png b/python/edu/resources/tips/images/searchEverywhere@2x_dark.png new file mode 100644 index 000000000000..2f6fa5607082 Binary files /dev/null and b/python/edu/resources/tips/images/searchEverywhere@2x_dark.png differ diff --git a/python/edu/resources/tips/images/searchEverywhere_dark.png b/python/edu/resources/tips/images/searchEverywhere_dark.png new file mode 100644 index 000000000000..c71501aa9e67 Binary files /dev/null and b/python/edu/resources/tips/images/searchEverywhere_dark.png differ diff --git a/python/edu/resources/tips/images/searchEverywhere_lense.png b/python/edu/resources/tips/images/searchEverywhere_lense.png new file mode 100644 index 000000000000..d855d22809ba Binary files /dev/null and b/python/edu/resources/tips/images/searchEverywhere_lense.png differ diff --git a/python/edu/resources/tips/images/searchEverywhere_lense@2x.png b/python/edu/resources/tips/images/searchEverywhere_lense@2x.png new file mode 100644 index 000000000000..5255eca01461 Binary files /dev/null and b/python/edu/resources/tips/images/searchEverywhere_lense@2x.png differ diff --git a/python/edu/resources/tips/images/searchEverywhere_lense@2x_dark.png b/python/edu/resources/tips/images/searchEverywhere_lense@2x_dark.png new file mode 100644 index 000000000000..680c00233e8a Binary files /dev/null and b/python/edu/resources/tips/images/searchEverywhere_lense@2x_dark.png differ diff --git a/python/edu/resources/tips/images/searchEverywhere_lense_dark.png b/python/edu/resources/tips/images/searchEverywhere_lense_dark.png new file mode 100644 index 000000000000..1157f40e4f8a Binary files /dev/null and b/python/edu/resources/tips/images/searchEverywhere_lense_dark.png differ diff --git a/python/edu/resources/tips/images/search_settings.png b/python/edu/resources/tips/images/search_settings.png new file mode 100644 index 000000000000..31796e24f576 Binary files /dev/null and b/python/edu/resources/tips/images/search_settings.png differ diff --git a/python/edu/resources/tips/images/search_settings@2x.png b/python/edu/resources/tips/images/search_settings@2x.png new file mode 100644 index 000000000000..14212d48cd5f Binary files /dev/null and b/python/edu/resources/tips/images/search_settings@2x.png differ diff --git a/python/edu/resources/tips/images/search_settings@2x_dark.png b/python/edu/resources/tips/images/search_settings@2x_dark.png new file mode 100644 index 000000000000..10a33a2676dd Binary files /dev/null and b/python/edu/resources/tips/images/search_settings@2x_dark.png differ diff --git a/python/edu/resources/tips/images/search_settings_dark.png b/python/edu/resources/tips/images/search_settings_dark.png new file mode 100644 index 000000000000..32a05bc600c9 Binary files /dev/null and b/python/edu/resources/tips/images/search_settings_dark.png differ diff --git a/python/edu/resources/tips/images/select_in.png b/python/edu/resources/tips/images/select_in.png new file mode 100644 index 000000000000..782ccc2629c1 Binary files /dev/null and b/python/edu/resources/tips/images/select_in.png differ diff --git a/python/edu/resources/tips/images/select_in@2x.png b/python/edu/resources/tips/images/select_in@2x.png new file mode 100644 index 000000000000..68aec61d7934 Binary files /dev/null and b/python/edu/resources/tips/images/select_in@2x.png differ diff --git a/python/edu/resources/tips/images/select_in@2x_dark.png b/python/edu/resources/tips/images/select_in@2x_dark.png new file mode 100644 index 000000000000..993408d31af3 Binary files /dev/null and b/python/edu/resources/tips/images/select_in@2x_dark.png differ diff --git a/python/edu/resources/tips/images/select_in_dark.png b/python/edu/resources/tips/images/select_in_dark.png new file mode 100644 index 000000000000..8ead24652cc9 Binary files /dev/null and b/python/edu/resources/tips/images/select_in_dark.png differ diff --git a/python/edu/resources/tips/images/select_tasks.png b/python/edu/resources/tips/images/select_tasks.png new file mode 100644 index 000000000000..1c9aa8993ff3 Binary files /dev/null and b/python/edu/resources/tips/images/select_tasks.png differ diff --git a/python/edu/resources/tips/images/select_tasks@2x.png b/python/edu/resources/tips/images/select_tasks@2x.png new file mode 100644 index 000000000000..58a42c001b1d Binary files /dev/null and b/python/edu/resources/tips/images/select_tasks@2x.png differ diff --git a/python/edu/resources/tips/images/select_tasks@2x_dark.png b/python/edu/resources/tips/images/select_tasks@2x_dark.png new file mode 100644 index 000000000000..59272a32576a Binary files /dev/null and b/python/edu/resources/tips/images/select_tasks@2x_dark.png differ diff --git a/python/edu/resources/tips/images/select_tasks_dark.png b/python/edu/resources/tips/images/select_tasks_dark.png new file mode 100644 index 000000000000..7d001529e458 Binary files /dev/null and b/python/edu/resources/tips/images/select_tasks_dark.png differ diff --git a/python/edu/resources/tips/images/showToolWindows.png b/python/edu/resources/tips/images/showToolWindows.png new file mode 100644 index 000000000000..2a925b29c213 Binary files /dev/null and b/python/edu/resources/tips/images/showToolWindows.png differ diff --git a/python/edu/resources/tips/images/showToolWindows@2x.png b/python/edu/resources/tips/images/showToolWindows@2x.png new file mode 100644 index 000000000000..db1071b866cd Binary files /dev/null and b/python/edu/resources/tips/images/showToolWindows@2x.png differ diff --git a/python/edu/resources/tips/images/showToolWindows@2x_dark.png b/python/edu/resources/tips/images/showToolWindows@2x_dark.png new file mode 100644 index 000000000000..06c387852f1c Binary files /dev/null and b/python/edu/resources/tips/images/showToolWindows@2x_dark.png differ diff --git a/python/edu/resources/tips/images/showToolWindows_dark.png b/python/edu/resources/tips/images/showToolWindows_dark.png new file mode 100644 index 000000000000..471d3b721af3 Binary files /dev/null and b/python/edu/resources/tips/images/showToolWindows_dark.png differ diff --git a/python/edu/resources/tips/images/showUsages.png b/python/edu/resources/tips/images/showUsages.png new file mode 100644 index 000000000000..196992b8c639 Binary files /dev/null and b/python/edu/resources/tips/images/showUsages.png differ diff --git a/python/edu/resources/tips/images/showUsages@2x.png b/python/edu/resources/tips/images/showUsages@2x.png new file mode 100644 index 000000000000..694a59cb2339 Binary files /dev/null and b/python/edu/resources/tips/images/showUsages@2x.png differ diff --git a/python/edu/resources/tips/images/showUsages@2x_dark.png b/python/edu/resources/tips/images/showUsages@2x_dark.png new file mode 100644 index 000000000000..b0abb99e23be Binary files /dev/null and b/python/edu/resources/tips/images/showUsages@2x_dark.png differ diff --git a/python/edu/resources/tips/images/showUsages_dark.png b/python/edu/resources/tips/images/showUsages_dark.png new file mode 100644 index 000000000000..b6ebb3e27c8a Binary files /dev/null and b/python/edu/resources/tips/images/showUsages_dark.png differ diff --git a/python/edu/resources/tips/images/show_applied_styles.png b/python/edu/resources/tips/images/show_applied_styles.png new file mode 100644 index 000000000000..1f6988b933a8 Binary files /dev/null and b/python/edu/resources/tips/images/show_applied_styles.png differ diff --git a/python/edu/resources/tips/images/show_applied_styles@2x.png b/python/edu/resources/tips/images/show_applied_styles@2x.png new file mode 100644 index 000000000000..e0720cb54e71 Binary files /dev/null and b/python/edu/resources/tips/images/show_applied_styles@2x.png differ diff --git a/python/edu/resources/tips/images/show_applied_styles@2x_dark.png b/python/edu/resources/tips/images/show_applied_styles@2x_dark.png new file mode 100644 index 000000000000..8fa79d6e0ba0 Binary files /dev/null and b/python/edu/resources/tips/images/show_applied_styles@2x_dark.png differ diff --git a/python/edu/resources/tips/images/show_applied_styles_dark.png b/python/edu/resources/tips/images/show_applied_styles_dark.png new file mode 100644 index 000000000000..f403cd166cb2 Binary files /dev/null and b/python/edu/resources/tips/images/show_applied_styles_dark.png differ diff --git a/python/edu/resources/tips/images/show_hide_tool_window_bars.png b/python/edu/resources/tips/images/show_hide_tool_window_bars.png new file mode 100644 index 000000000000..bf752ceb6d93 Binary files /dev/null and b/python/edu/resources/tips/images/show_hide_tool_window_bars.png differ diff --git a/python/edu/resources/tips/images/show_hide_tool_window_bars@2x.png b/python/edu/resources/tips/images/show_hide_tool_window_bars@2x.png new file mode 100644 index 000000000000..994df8775783 Binary files /dev/null and b/python/edu/resources/tips/images/show_hide_tool_window_bars@2x.png differ diff --git a/python/edu/resources/tips/images/show_hide_tool_window_bars@2x_dark.png b/python/edu/resources/tips/images/show_hide_tool_window_bars@2x_dark.png new file mode 100644 index 000000000000..822975130fcc Binary files /dev/null and b/python/edu/resources/tips/images/show_hide_tool_window_bars@2x_dark.png differ diff --git a/python/edu/resources/tips/images/show_hide_tool_window_bars_dark.png b/python/edu/resources/tips/images/show_hide_tool_window_bars_dark.png new file mode 100644 index 000000000000..083029cb687e Binary files /dev/null and b/python/edu/resources/tips/images/show_hide_tool_window_bars_dark.png differ diff --git a/python/edu/resources/tips/images/sidebyside.png b/python/edu/resources/tips/images/sidebyside.png new file mode 100644 index 000000000000..8d004bc81c3a Binary files /dev/null and b/python/edu/resources/tips/images/sidebyside.png differ diff --git a/python/edu/resources/tips/images/sidebyside@2x.png b/python/edu/resources/tips/images/sidebyside@2x.png new file mode 100644 index 000000000000..9cf631a6b302 Binary files /dev/null and b/python/edu/resources/tips/images/sidebyside@2x.png differ diff --git a/python/edu/resources/tips/images/sidebyside@2x_dark.png b/python/edu/resources/tips/images/sidebyside@2x_dark.png new file mode 100644 index 000000000000..c64e919e14de Binary files /dev/null and b/python/edu/resources/tips/images/sidebyside@2x_dark.png differ diff --git a/python/edu/resources/tips/images/sidebyside_dark.png b/python/edu/resources/tips/images/sidebyside_dark.png new file mode 100644 index 000000000000..c55c6e3ff9a6 Binary files /dev/null and b/python/edu/resources/tips/images/sidebyside_dark.png differ diff --git a/python/edu/resources/tips/images/speed_search.png b/python/edu/resources/tips/images/speed_search.png new file mode 100644 index 000000000000..2e58d3300b31 Binary files /dev/null and b/python/edu/resources/tips/images/speed_search.png differ diff --git a/python/edu/resources/tips/images/speed_search@2x.png b/python/edu/resources/tips/images/speed_search@2x.png new file mode 100644 index 000000000000..60b5f2e4c87b Binary files /dev/null and b/python/edu/resources/tips/images/speed_search@2x.png differ diff --git a/python/edu/resources/tips/images/speed_search@2x_dark.png b/python/edu/resources/tips/images/speed_search@2x_dark.png new file mode 100644 index 000000000000..112b38107a58 Binary files /dev/null and b/python/edu/resources/tips/images/speed_search@2x_dark.png differ diff --git a/python/edu/resources/tips/images/speed_search_dark.png b/python/edu/resources/tips/images/speed_search_dark.png new file mode 100644 index 000000000000..86642ce0e899 Binary files /dev/null and b/python/edu/resources/tips/images/speed_search_dark.png differ diff --git a/python/edu/resources/tips/images/switcher.png b/python/edu/resources/tips/images/switcher.png new file mode 100644 index 000000000000..2a4cbcdd1e04 Binary files /dev/null and b/python/edu/resources/tips/images/switcher.png differ diff --git a/python/edu/resources/tips/images/switcher@2x.png b/python/edu/resources/tips/images/switcher@2x.png new file mode 100644 index 000000000000..1fb023f79dd0 Binary files /dev/null and b/python/edu/resources/tips/images/switcher@2x.png differ diff --git a/python/edu/resources/tips/images/switcher@2x_dark.png b/python/edu/resources/tips/images/switcher@2x_dark.png new file mode 100644 index 000000000000..b36a0e6c0daf Binary files /dev/null and b/python/edu/resources/tips/images/switcher@2x_dark.png differ diff --git a/python/edu/resources/tips/images/switcher_dark.png b/python/edu/resources/tips/images/switcher_dark.png new file mode 100644 index 000000000000..0549a5a147be Binary files /dev/null and b/python/edu/resources/tips/images/switcher_dark.png differ diff --git a/python/edu/resources/tips/images/tagNameCompletion.png b/python/edu/resources/tips/images/tagNameCompletion.png new file mode 100644 index 000000000000..e711aa8c0093 Binary files /dev/null and b/python/edu/resources/tips/images/tagNameCompletion.png differ diff --git a/python/edu/resources/tips/images/tagNameCompletion@2x.png b/python/edu/resources/tips/images/tagNameCompletion@2x.png new file mode 100644 index 000000000000..2942719bedb8 Binary files /dev/null and b/python/edu/resources/tips/images/tagNameCompletion@2x.png differ diff --git a/python/edu/resources/tips/images/tagNameCompletion@2x_dark.png b/python/edu/resources/tips/images/tagNameCompletion@2x_dark.png new file mode 100644 index 000000000000..71bd316fe677 Binary files /dev/null and b/python/edu/resources/tips/images/tagNameCompletion@2x_dark.png differ diff --git a/python/edu/resources/tips/images/tagNameCompletion_dark.png b/python/edu/resources/tips/images/tagNameCompletion_dark.png new file mode 100644 index 000000000000..1e6971d5cb6e Binary files /dev/null and b/python/edu/resources/tips/images/tagNameCompletion_dark.png differ diff --git a/python/edu/resources/tips/images/terminal.png b/python/edu/resources/tips/images/terminal.png new file mode 100644 index 000000000000..f71774350ae8 Binary files /dev/null and b/python/edu/resources/tips/images/terminal.png differ diff --git a/python/edu/resources/tips/images/terminal@2x.png b/python/edu/resources/tips/images/terminal@2x.png new file mode 100644 index 000000000000..2d75b4fcb1d5 Binary files /dev/null and b/python/edu/resources/tips/images/terminal@2x.png differ diff --git a/python/edu/resources/tips/images/terminal@2x_dark.png b/python/edu/resources/tips/images/terminal@2x_dark.png new file mode 100644 index 000000000000..9cdd82ef538b Binary files /dev/null and b/python/edu/resources/tips/images/terminal@2x_dark.png differ diff --git a/python/edu/resources/tips/images/terminal_dark.png b/python/edu/resources/tips/images/terminal_dark.png new file mode 100644 index 000000000000..54ae051d777b Binary files /dev/null and b/python/edu/resources/tips/images/terminal_dark.png differ diff --git a/python/edu/resources/tips/images/todo_preview.png b/python/edu/resources/tips/images/todo_preview.png new file mode 100644 index 000000000000..8475624cfa8b Binary files /dev/null and b/python/edu/resources/tips/images/todo_preview.png differ diff --git a/python/edu/resources/tips/images/todo_preview@2x.png b/python/edu/resources/tips/images/todo_preview@2x.png new file mode 100644 index 000000000000..9962b2b0e0fc Binary files /dev/null and b/python/edu/resources/tips/images/todo_preview@2x.png differ diff --git a/python/edu/resources/tips/images/todo_preview@2x_dark.png b/python/edu/resources/tips/images/todo_preview@2x_dark.png new file mode 100644 index 000000000000..6caef92066ef Binary files /dev/null and b/python/edu/resources/tips/images/todo_preview@2x_dark.png differ diff --git a/python/edu/resources/tips/images/todo_preview_dark.png b/python/edu/resources/tips/images/todo_preview_dark.png new file mode 100644 index 000000000000..a0c50ebbd9a8 Binary files /dev/null and b/python/edu/resources/tips/images/todo_preview_dark.png differ diff --git a/python/edu/resources/tips/images/todo_scopes.png b/python/edu/resources/tips/images/todo_scopes.png new file mode 100644 index 000000000000..8121347bd5c1 Binary files /dev/null and b/python/edu/resources/tips/images/todo_scopes.png differ diff --git a/python/edu/resources/tips/images/todo_scopes@2x.png b/python/edu/resources/tips/images/todo_scopes@2x.png new file mode 100644 index 000000000000..e395360dd5e8 Binary files /dev/null and b/python/edu/resources/tips/images/todo_scopes@2x.png differ diff --git a/python/edu/resources/tips/images/todo_scopes@2x_dark.png b/python/edu/resources/tips/images/todo_scopes@2x_dark.png new file mode 100644 index 000000000000..ec8a30107d12 Binary files /dev/null and b/python/edu/resources/tips/images/todo_scopes@2x_dark.png differ diff --git a/python/edu/resources/tips/images/todo_scopes_dark.png b/python/edu/resources/tips/images/todo_scopes_dark.png new file mode 100644 index 000000000000..2a2a056f756d Binary files /dev/null and b/python/edu/resources/tips/images/todo_scopes_dark.png differ diff --git a/python/edu/resources/tips/images/try_except.png b/python/edu/resources/tips/images/try_except.png new file mode 100644 index 000000000000..918275f1b883 Binary files /dev/null and b/python/edu/resources/tips/images/try_except.png differ diff --git a/python/edu/resources/tips/images/try_except@2x.png b/python/edu/resources/tips/images/try_except@2x.png new file mode 100644 index 000000000000..6336bbcb3f62 Binary files /dev/null and b/python/edu/resources/tips/images/try_except@2x.png differ diff --git a/python/edu/resources/tips/images/try_except@2x_dark.png b/python/edu/resources/tips/images/try_except@2x_dark.png new file mode 100644 index 000000000000..32f100a97b39 Binary files /dev/null and b/python/edu/resources/tips/images/try_except@2x_dark.png differ diff --git a/python/edu/resources/tips/images/try_except_dark.png b/python/edu/resources/tips/images/try_except_dark.png new file mode 100644 index 000000000000..5c12670caaf5 Binary files /dev/null and b/python/edu/resources/tips/images/try_except_dark.png differ diff --git a/python/edu/resources/tips/images/vcsQuickList.png b/python/edu/resources/tips/images/vcsQuickList.png new file mode 100644 index 000000000000..61209a6428fd Binary files /dev/null and b/python/edu/resources/tips/images/vcsQuickList.png differ diff --git a/python/edu/resources/tips/images/vcsQuickList@2x.png b/python/edu/resources/tips/images/vcsQuickList@2x.png new file mode 100644 index 000000000000..e4735101dc8a Binary files /dev/null and b/python/edu/resources/tips/images/vcsQuickList@2x.png differ diff --git a/python/edu/resources/tips/images/vcsQuickList@2x_dark.png b/python/edu/resources/tips/images/vcsQuickList@2x_dark.png new file mode 100644 index 000000000000..074919081f65 Binary files /dev/null and b/python/edu/resources/tips/images/vcsQuickList@2x_dark.png differ diff --git a/python/edu/resources/tips/images/vcsQuickList_dark.png b/python/edu/resources/tips/images/vcsQuickList_dark.png new file mode 100644 index 000000000000..0c8cbe495068 Binary files /dev/null and b/python/edu/resources/tips/images/vcsQuickList_dark.png differ diff --git a/python/edu/resources/tips/images/wildcard_goto.png b/python/edu/resources/tips/images/wildcard_goto.png new file mode 100644 index 000000000000..3486682a805d Binary files /dev/null and b/python/edu/resources/tips/images/wildcard_goto.png differ diff --git a/python/edu/resources/tips/images/wildcard_goto@2x.png b/python/edu/resources/tips/images/wildcard_goto@2x.png new file mode 100644 index 000000000000..557f5b22be48 Binary files /dev/null and b/python/edu/resources/tips/images/wildcard_goto@2x.png differ diff --git a/python/edu/resources/tips/images/wildcard_goto@2x_dark.png b/python/edu/resources/tips/images/wildcard_goto@2x_dark.png new file mode 100644 index 000000000000..06d01e57548b Binary files /dev/null and b/python/edu/resources/tips/images/wildcard_goto@2x_dark.png differ diff --git a/python/edu/resources/tips/images/wildcard_goto_dark.png b/python/edu/resources/tips/images/wildcard_goto_dark.png new file mode 100644 index 000000000000..1f7340e1691f Binary files /dev/null and b/python/edu/resources/tips/images/wildcard_goto_dark.png differ diff --git a/python/edu/resources/tips/images/word_completion.png b/python/edu/resources/tips/images/word_completion.png new file mode 100644 index 000000000000..ae32b93e7030 Binary files /dev/null and b/python/edu/resources/tips/images/word_completion.png differ diff --git a/python/edu/resources/tips/images/word_completion@2x.png b/python/edu/resources/tips/images/word_completion@2x.png new file mode 100644 index 000000000000..2bfed89e18b6 Binary files /dev/null and b/python/edu/resources/tips/images/word_completion@2x.png differ diff --git a/python/edu/resources/tips/images/word_completion@2x_dark.png b/python/edu/resources/tips/images/word_completion@2x_dark.png new file mode 100644 index 000000000000..bcdc5582f8e0 Binary files /dev/null and b/python/edu/resources/tips/images/word_completion@2x_dark.png differ diff --git a/python/edu/resources/tips/images/word_completion_dark.png b/python/edu/resources/tips/images/word_completion_dark.png new file mode 100644 index 000000000000..199bcfbd3d6f Binary files /dev/null and b/python/edu/resources/tips/images/word_completion_dark.png differ diff --git a/python/edu/resources/tips/moveFileToChangelist.html b/python/edu/resources/tips/moveFileToChangelist.html new file mode 100644 index 000000000000..7ec305ed0a19 --- /dev/null +++ b/python/edu/resources/tips/moveFileToChangelist.html @@ -0,0 +1,16 @@ + + + + + + + +

+You can move any file to a changelist of your choice. To do that, just choose +Move to Changelist on the file context menu in the Changes tool window: +

+ +

+ + + diff --git a/python/edu/src/META-INF/IdeTipsAndTricks.xml b/python/edu/src/META-INF/IdeTipsAndTricks.xml new file mode 100644 index 000000000000..e920175552b6 --- /dev/null +++ b/python/edu/src/META-INF/IdeTipsAndTricks.xml @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/python/edu/src/META-INF/PyCharmEduPlugin.xml b/python/edu/src/META-INF/PyCharmEduPlugin.xml new file mode 100644 index 000000000000..48ac4b6fde03 --- /dev/null +++ b/python/edu/src/META-INF/PyCharmEduPlugin.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/python/edu/src/META-INF/pycharm-edu.xml b/python/edu/src/META-INF/pycharm-edu.xml new file mode 100644 index 000000000000..0f422901e076 --- /dev/null +++ b/python/edu/src/META-INF/pycharm-edu.xml @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + com.jetbrains.python.PyCharmInitialConfigurator + + + + + + com.intellij.internal.statistic.updater.SendStatisticsProjectComponent + + + com.jetbrains.python.PyModuleListener + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +