ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 29499|回复: 47

使用Notepad++给自己打造一款PowerQuery M语言编辑器

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2017-2-21 23:03 | 显示全部楼层 |阅读模式
本帖最后由 张文洲 于 2017-8-8 23:40 编辑

E友们好,使用过PowerQuery的朋友都会对M语言编辑器的界面感到疼痛,因为它目前不像Excel工作表函数那样支持智能提示,而且还严格区分大小写,这对用户编辑代码带来不少的麻烦。
微软在之前的推介会上已经演示过内测版,里面有智能提示功能,希望这一功能能尽快在后续的更新中上线。在新功能正式上线之前,有发烧友想尝鲜的,可以关注一下本帖。

我和大家分享一下使用Notepad++创建自定义语言打造PowerQuery M语言编辑器的方法,希望大家喜欢。

首先看看最终的效果图

1、关键字智能提示和高亮显示
6666.jpg
2、函数参数智能提示
77777.jpg


步骤一、下载安装Notepad++


关于Notepad++的介绍,此处不做冗述,官方下载网页
00.jpg

步骤二、创建自定义语言

1.打开Notepad++,创建自定义语言

81.jpg

选择新建,定义语言名称,我这里定义的就是“M”

82.jpg


83.jpg

定义语言层次和布局参数

84.jpg

定义关键字列表,此界面可以针对每一类关键字设置不同的字体风格
下图中的关键字是根据微软官方M语言说明文档,选择部分关键字来定义的,大家可以根据自己的需要进行增减。
各个部分的内容没有先后顺序,关键字之间也没有先后顺序,关键字用空格分隔,或者换行分隔。
注意最上面的忽略大小写,不能打钩。

85.jpg
上图中的函数关键字列表,新接触PQ的朋友可以按下图快速获取
打开PowerQuery,新建空白查询
93.jpg
公式栏输入公式  =#shared,并将List结果转换为Table
94.jpg

删除Value列,复制整列,然后粘贴到Notepad++关键字定义界面,并去掉第1行的Query1(中文是 查询1)
95.jpg

接下来定义注释与数字格式
86.jpg

然后定义数字与运算符
87.jpg

到这里,M语言的基本设置就完成了,接下来我们重启Notepad++,在语言菜单下就会看到新建的M


88.jpg

我们选择M语言,然后在编辑界面输入代码尝试一下,会发现编辑器已经能够识别关键字,并对关键字进行折叠显示、高亮显示等,但是不能智能显示关键字列表。

如图示,T开头的关键字远不止Text一个。
89.jpg

2、自动完成文件配置
这是因为我们还没有为M语言配置自动完成文件。所有语言的自动配置文件都在同一个文件夹下

91.jpg

我们可以用记事本或Notepad++打开这些文件研究一下,会发所有的文件首尾语句几乎都是一样的,只是中间的关键字部分不同。因此我们可以随意复制一个其他语言的xml配置文件,并参照修改。

以下对我的M语言xml文件内容结构做一个简单的解释,里面有一个函数和一个参数的配置内容,供大家参考。
在文件首尾语句中可以继续添加其他函数和参数等关键字的配置数据。
配置完成后,重启Notepad++

92.jpg



3、选项修改
最后更改Notepad++的两个选项的设置
自动完成选项设置参照下图


96.jpg

关于界面风格主题,除了在上面定义关键词的界面可以为每类关键字定义主题,还可以为编辑器整体定义风格

以下是我自己的配置,供参考

97.jpg

至此,我们已经完成了关于语言的自动完成配置,再在语言菜单下选择M语言,在编辑界面看看自己的成果吧。



彩蛋!!
不想动手的朋友,可以下载我的两个附件

M.xml 文件是自动完成配置文件,请复制粘贴到上述路径中。
userDefineLang.xml 文件是M语言定义文件,大家在  语言-自定语言格式 界面,选择导入,导入此文件即可。
然后重启Notepad++即可。


关于PowerQuery M函数中文帮助的内容,欢迎关注我前面一个主题,里面可以下载M函数中文帮助手册.PDF
关于PowerQuery更多内容,欢迎关注我的视频教程,感谢大家支持,我将在课程附件中随时更新M.xml自动完成配置文件。
最后,在注明来源的前提下,欢迎大家分享此文和附件的内容。
最后,对两位好友的无私帮助表示感谢

QQ截图20170221230949.png



Notepad & M语言.rar

559.01 KB, 下载次数: 1327

评分

16

查看全部评分

TA的精华主题

TA的得分主题

发表于 2017-2-22 00:01 | 显示全部楼层
顶一下,大赞.

TA的精华主题

TA的得分主题

发表于 2017-2-22 00:38 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
俺都不知道这是干啥用的

TA的精华主题

TA的得分主题

发表于 2017-2-22 10:06 | 显示全部楼层
精于技术,乐于分享。

虽然此时我不用,后面一定会用的上,感激不尽。

TA的精华主题

TA的得分主题

发表于 2017-2-22 13:47 来自手机 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
已按照教程做了一个,非常感谢楼主分享
对我们入门者确实很有帮助。

TA的精华主题

TA的得分主题

发表于 2017-2-22 15:52 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2017-2-22 16:53 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2017-3-5 13:12 | 显示全部楼层
最近在学这个Powerquery,终于有看到比较方便学习的东东了。

另外请问张老师:我有一个文件夹,文件夹里面是ERP软件里面导出的txt文件,各个txt里面字段都是一样的,不知道为什么公司的excel以这个文件夹作为源的时候,点击content之后就只会出现txt里面的各种字段,原先源的文件名列却找不到了,自己电脑的excel就不会这样,公司的excel是正版。。自己的是下载的。。

TA的精华主题

TA的得分主题

发表于 2017-6-21 15:41 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2017-7-4 16:41 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
前来学习, 谢谢张老师!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-21 18:38 , Processed in 0.049952 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表